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调试技巧

断点指定条件

1573740941349

方法调用跳回

1573741222341

多线程调试

img

调式中修改变量测试效果

1573741336421

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        操作菜单,ifdo 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 全局检查

  1. 全局扫描错误,异常,警告 Analyze Inspect Code…
  2. 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());


![image-20201122213200577](Git-IDEA-技巧/image-20201122213200577.png)



### IDEA 显示Git更新涉及的文件

可能无意间点到显示差异导致Git查看无法显示涉及的文件,IDEA搜索快捷键:Version Control Systems | File History | Show Details

然后进入Git,选择更新的记录,使用快捷键即可

![image-20210121203609799](Git-IDEA-技巧/image-20210121203609799.png)







### 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

image-20191120153539863

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

开发技巧

链接分享实战

分享处理技巧:

  1. 为了不暴露真实的地址,利用转发比重定向更好
  2. 通过设计短链表,通过key映射真正的参数信息,进行页面请求转发即可
  3. 复杂界面请求多的情况下,接口需要一一处理支持分享功能

复杂业务代码设计思路

代码设计思路:

  1. 业务场景代码设计和最基础的数据结构及算法设计相同,需要更多的注意边界条件
  2. 具体需求层次,实现顺序,考虑影响范围 -》 实现思路最好从具体出发,向全量范围拓展
  3. 自行拆解需求,满足更多的场景使用
  4. 永远不要相信所谓的前提条件,用户和测试永远不会按照最理想的情况运行

最好结合图进行绘制和处理

新增简单功能需要注意的问题

代码设计思路:

  1. 此简单功能,有没有其他影响功能?如果有,则需要找出来一并修改
  2. 此功能有没有类似功能,搜索类似功能关键词,找到其涉及的所有功能
  3. 根据类似功能及相关涉及的功能进行优化,检查,避免简单需求有其定式思维,导致BUG的增加

IDEA 样式收集