引言
在使用git进行版本管理的过程中,开发人员代码的提交可能需要在多个分支之间进行切换,每个开发人员提交代码的习惯也是不一样的,有的喜欢开发完成提交,有个喜欢半个小时提交一次……有些时候我们并不希望在另一个分支上看到当前分支的多次提交记录,只希望将多个提交记录合并成一个记录,达到美化commit history的效果
合并提交记录
创建提交记录
首先在分支上创建了3个提交记录,如下图:

合并提交记录
假设需要合并这3个提交记录,执行命令
git rebase -i HEAD~3
会有如下提示:

pick
是rebase时的指令,具体我们还可以使用如下指令:
- 选择pick指令,git会应用这个提交,以同样的提交信息(commit message)保存提交
- 选择reword指令,git会应用这个提交,但需要重新编辑提交信息
- 选择edit指令,git会应用这个提交,但会因为amending而终止
- 选择squash指令,git会应用这个提交,但会与之前的提交合并
- 选择fixup指令,git会应用这个提交,但会丢掉提交日志
- 选择exec指令,git会在shell中运行这个命令
接下来,如果我们修改提示文件:
pick 3e60dd4 创建合并提交记录
s 627c7d7 修改合并提交记录
s 3a259d9 完成合并提交记录
会有如下提示:

如果我们不想修改任何信息,保存即可,也可以修改最终的提交信息后再保存。
然后我们再看下这时的git history:
* 44c536b - (HEAD -> feature) 合并提交记录完成 (4 minutes ago) <Blackfat>
可以看到3条提交记录,已经合并成了一条记录,并且修改了最终的提交信息。
网友评论