Hegwin.Me

疏影横斜水清浅,暗香浮动月黄昏。

Git 合并最后若干次提交

在本地进行功能开发的时候,有时候完成某一部分就会commit一次,这样子对自己追溯问题应该比较方便。但是在整体上,小而多的提交对团队中的其他人来说并不太友好,因此,最终把代码push到服务器上时,最好是对一个task或者story,把相应的提交合并起来。而 squash 就可以帮到我们。

比如说我现在在push到服务器之前,把当前分支最后三个commits合并一个commit:

git rebase -i HEAD~3

不过在此之前的话,还是建议设置一下 git 的编辑器,nano实在是用的不习惯

git config --global core.editor "gvim -f"

打完 git rebase -i HEAD~3 弹出的编辑应该是下面这个样子:

对于继续保留的commit,我们可以是用 pick (其实默认都是pick), 而对于需要被合并的提交,将前面的 pick 改为 squash 即可。不过,至少要有一个 pick 或者和 pick同效果的存在。

看图的话,其实不同命令的效果,他自己也有注释的,就不需要我这里多言了。

比如我这里可以这样:

Tags:

Posted on: 2013-10-10

Back