Git 合并最后若干次提交
Git squash last commits
在本地进行功能开发的时候,有时候完成某一部分就会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同效果的存在。
看图的话,其实不同命令的效果,他自己也有注释的,就不需要我这里多言了。
比如我这里可以这样: