当push多个版本的代码时,难免会出现多个commit的情况,为了提交清爽,我们应该将多余的commit合并到一起。
合并的方法有:
1.rebase
2.reset
操作步骤:
首先运用 git log查阅当前的commit记录,选取好需要合并的commit
接下来你可以:
rebase
运用 git rebase -i HEAD~N(N是你想合并的commit的数量,比如合并前三个,就写3)
在接下来的vim编辑器中选取被合并的commit,将其前面的字母置为s,按wq保存
在新出现的vim编辑器中将被合并的commit前面打上注释符号:#
保存退出。
(这个方法有时候会失效,遇到过一次在输入git rebase -i HEAD~N后,vim编辑器中出现了很多别人的commit,如果出现这种一下子解决不了的情况,为保证开发效率,我们可以选用reset方法)
reset
我们运用git reset直接回滚到第一个commit之前的版本号,此时更改的代码还在,但是commit全部消失了,重新add+commit一次即可。
两种方法比较
rebase可以通过一些参数更细粒度地控制合并的进程,比如-i参数可以让你在vim编辑器中选取合适的commit,你可以合并所有commit,也可以只合并其中的一些,而留下多个commit。
reset更为简单粗暴一些,直接回滚commit,有时候rebase使用不当会出现一些难以解决的问题,此时reset可以派上用场。
最后
如果想让远端分支的commit也合并,git push -f 强行推到远端分支即可。
(完)