Git如何合并多个commit提交记录

1. 为什么要合并多个commit提交记录?

  在我们日常开发过程中,开发一个功能,肯定会从master切出一个 dev;当这个功能开发、测试完成后需要合并至 master;这个时候 dev 常常有多条,甚至几十条提交记录,直接提交,就会在 master 造成大量的无用 commit ,造成 git log 污染。这个时候就需要将同等意思的提交记录合并为一条,来保证代码整洁、方便 code review 。

2. 使用命令合并

2.1 将git的编辑器改为vim(默认就是,不执行也没问题)

git config core.editor vim

2.2 查看git提交日志

git log --oneline

git log --oneline

2.3 使用 git rebase -i [版本号]git rebase -i HEAD~n命令

### 合并a680471后的commint
git rebase -i a680471
### 或
### 合并最近三次的commint
git rebase -i HEAD~3

2.4 2.3执行后会进入vim编辑页面

   使用 i 进入编辑模式,将pick改为s,第一行不改;然后 Esc:wq 保存退出,会进入编辑提交信息界面
编辑

   使用 i 进入编辑模式修改提交信息;然后 Esc:wq 保存退出,即可完成commit合并。
修改commit

   合并完成之后的分支
完成

如过合并到一半想撤销修改,执行 git rebase –abort 即可

3. IDEA(2020.2.4)开发工具合并

   进入 Git 控制台,选中需要合并的commit右键选择 Squash Commits… ;然后 填写新的commit记录即可。
IDEA开发工具合并

4. windows上使用git rebase -i命令进入vi编辑器时中文乱码

在你的Git安装目录中找到Git\etc\vimrc文件,增加以下内容:

set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set fileformats=unix
set encoding=prc

重新打开即可