Git多次提交记录合并
开发过程中,使用Git有时候会遇到多次零碎的小提交,想要合并成一个提交记录,这里记录一下操作。
讲解部分是通过从零开始搭个仓库做试验,回顾一下用法;方法部分则是总结用法。
讲解
第一步,先建新一个目录并初始化为空的Git仓库
1 | mkdir merge |
第二步,新建4个文件做4次提交
1 | vim a.txt |
第三步, 进行多次提交记录的合并
先查看一下近三次的提交记录
1 | git log --pretty=format:"%h %s" HEAD~3..HEA |
执行交互式变基操作
1 | git rebase -i HEAD~3 |
执行上述命令后会出现对应的交互操作提示
1 | pick 19d685a second commit |
为了将三次提交合并为一次,需要对后两次提交记录使用squash
命令
1 | pick 19d685a second commit |
接着对vi编辑器进行保存后退出,Git会出现合并后的commit提示信息输入
1 | # This is a combination of 3 commits. |
将上述的提交信息改成合并后想要的信息即可
1 | merge commit from second, third, forth |
保存退出,看到Git已经帮我们的修改提交成功了
1 | [detached HEAD 25d7655] merge commit from second, third, forth |
再次查看提交记录,变成了两次提交
1 | git log --pretty=oneline |
至此,合并3次提交为一次就成功了。
方法
合并多次Git提交的方法是通过交互式变基命令实现的,通过变基将提交历史进行修改。
1 | # n为需要处理的提交次数 |
然后交互式变基的操作中对需要合并的提交记录选择squash
命令即可。
使用后对应修改合并后的提交信息保存。
注意
- 如果本地的Git提交记录已经推送到远程分支,则不要进行变基操作,否则可能会给其他开发者造成困扰。