git合并多个commit

当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 强行推到远端分支即可。

(完)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。