Git-IDEA-技巧
标签: #Share
GitHub高级搜索
仓库名搜索
in:name spring boot
Stars | forks 搜索
# 注意 stars:>3000 中间要连起来,不要有空格
in:name spring boot stars:>3000
...forks:>1000
ReadMe搜索
in:readme spring boot
描述搜索
in:description 微服务
语言限定
language:java
Push时间限定
Pushed:>2019-10
Git 项目构建 添加.gitignore文件
.gitignore Content
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
Git 初次提交 操作步骤
// 1. 第一步 commit,push .gitignore 文件
// 2. 之后再提交即不用重复处理非必要文件
// 3. 如果 .gitignore 不起作用的处理办法:
// 清理相关缓存
git rm -r --cached .
git add .
// 再进行提交
// 同时:注意初次提交时是否提交了多余的内容
Windows Cmd 集成 Git Bash
安装 Git Bash
# Path 变量添加如下路径: 测试验证:改变了系统级别CMD的功能,利用Java执行的linux 命令也可以支持
F:\Git\Git\cmd
F:\Git\Git\usr\bin
F:\Git\Git\mingw64\bin
Git合并多次提交结果为一次
IDEA调试技巧
断点指定条件

方法调用跳回

多线程调试

调式中修改变量测试效果

IDEA快捷键
ctrl + Alt + C ---> 抽取变量
ctrl + Alt + V ---> 抽取表达式
ctrl + Alt + M ---> 抽取方法
Ctrl + O ---> 重写父类方法
Ctrl + H ---> 查看类的关系
Shift + Alt + R 弹出重构菜单 原:Ctrl+Alt+Shift+T
Shift + Alt + E Extract菜单,帮助快速提取代码等
Shift + Alt + Z 操作菜单,if,do while等等
IDEA ----> iter 增强for循环自动填充
list.fori list.for 自动填充
Annotate 鼠标右键显示代码最近是谁提交的
DeBug时 选中某一行,然后 Evaluate Expression Debug时执行代码
KeyMap 快捷键查找,如下图所示 可以通过快捷键进行查找
ctrl + shift + + | - 一键把缩略或者打开所有方法
ctrl + + | - 缩略当前方法

IDEA 全局搜索 | 替换功能
// 1. 全局搜索和全局替换 有文件类型筛选功能,指定路径范围, 作用范围等等
// 2. 全局搜索 全局替换支持正则表达式
如 通过正则全局替换:
css\?v=.+?" ---》 css"
js\?v=.+?" ---》 js"
pdf\?v=.+?" ---》 pdf"
"/(.+?js)" "/(.+?css)" "/(.+?pdf)"
===> "/$1?v=${oem_resource_version}"
这也给我们启示,不要重复造轮子,好好利用当下的现有工具
IDEA 便利设置
Window -> Editor Tabs -> Tabs Placement,取消勾选 Show Tabs In Single Row选项
IDEA 全局检查
- 全局扫描错误,异常,警告 Analyze Inspect Code…
- Ctrl + Alt + Shift + I -> 输入需要插件的警告类型即可全局扫描
IDEA 导入 插件项目方法
.iml文件1. 注意项目SDK,设置Platform Settings idea SDK,设置 Project SDK为idea SDK 2. 添加Configurations为Plugin 终极解决方案: 如果始终无法导入,建议新建同名插件项目,然后进行文件替换 注意 .iml文件,git相关文件即可 ### IDEA 快捷键打日志快捷键:自定义,如 logp
内容:logger.info(“$METHOD_NAME$::”$ARGUMENTS$);
参数一:methodName();
参数二:groovyScript(“def result=’’; def params="${_1}".replaceAll(‘[\\[|\\]|\\s]’, ‘’).split(‘,’).toList();for(i = 0; i < params.size(); i++) {if(i==0){result+=’+" ‘ + params[i] + ‘ :"+ ‘+params[i];}else{result+=’ +"; ‘ + params[i] + ‘ :"+ ‘+params[i];}}; return result;”, methodParameters());

### IDEA 显示Git更新涉及的文件
可能无意间点到显示差异导致Git查看无法显示涉及的文件,IDEA搜索快捷键:Version Control Systems | File History | Show Details
然后进入Git,选择更新的记录,使用快捷键即可

### Eclipse导入SpringBoot项目方法
基于Maven的方式导入之后,如果pom.xml报未知错误,是由于Maven版本不兼容导致,处理办法:
```xml
// 设置Maven版本为3.1.1 然后Update项目即可
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
Pycharm 环境构建 统一依赖文件
统一设置为 系统python.exe 共享依赖即可 ---> 注意设置Default Setting

- 更改pip源,注意刷新:https://mirrors.aliyun.com/pypi/simple/
- 插件,快捷键参考IDEA即可
Maven 镜像
配置阿里云镜像 - 并强制项目启用
<!--配置阿里云Maven镜像-->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<!-- 启用阿里云镜像下载依赖 -->
<repositories>
<repository>
<id>nexus-aliyun</id>
<name>nexus-aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
监听端口技巧
伪造服务端监听端口
// 伪造6379 redis-服务端,监听 jedis发送的协议内容
public class SocketApp {
/***
* 监听 6379 传输的数据
* JVM端口需要进行设置
*/
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(6379);
Socket redis = serverSocket.accept();
byte[] result = new byte[2048];
redis.getInputStream().read(result);
System.out.println(new String(result));
} catch (Exception e) {
e.printStackTrace();
}
}
}
// jedis连接-发送命令
public class App {
public static void main(String[] args){
Jedis jedis = new Jedis("127.0.0.1");
jedis.set("key", "This is value.");
jedis.close();
}
}
// 监听命令内容如下:
*3
$3
SET
$3
key
$14
开发技巧
链接分享实战
分享处理技巧:
- 为了不暴露真实的地址,利用转发比重定向更好
- 通过设计短链表,通过key映射真正的参数信息,进行页面请求转发即可
- 复杂界面请求多的情况下,接口需要一一处理支持分享功能
复杂业务代码设计思路
代码设计思路:
- 业务场景代码设计和最基础的数据结构及算法设计相同,需要更多的注意边界条件
- 具体需求层次,实现顺序,考虑影响范围 -》 实现思路最好从具体出发,向全量范围拓展
- 自行拆解需求,满足更多的场景使用
- 永远不要相信所谓的前提条件,用户和测试永远不会按照最理想的情况运行
最好结合图进行绘制和处理
新增简单功能需要注意的问题
代码设计思路:
- 此简单功能,有没有其他影响功能?如果有,则需要找出来一并修改
- 此功能有没有类似功能,搜索类似功能关键词,找到其涉及的所有功能
- 根据类似功能及相关涉及的功能进行优化,检查,避免简单需求有其定式思维,导致BUG的增加
IDEA 样式收集
- IDEA One-Dark-Theme
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!