git合并多个commit
在我们项目开发过程中,使用到git作为版本控制的工具,在使用git的过程中我们会遵循一个原则
“让每次提交都是一次有质量的提交”
在遵循这个原则的过程中,我们需要注意下面几个点
- 每一次的提交都是一个小功能点或者是一次bug fix ,这样能够让你的代码回溯变得更加清晰和优雅
- 关于说明:一句简练的话作为第一行,然后空出一行阐述增加的文件和修改的地方
- 在本地完成功能之后再push到远端,不要每次commit就push一次
当然在真实的开发中,由于各种各样的原因,我们对于一个功能点提交了多次,这时候我们要做到第三点就可以使用到将多个commit合并成一个commit,这样你可以保证每次push都是一个完整的功能点。
下面开始实操讲解如何将多个commit合并成一个commit
首先使用 git log 查看提交情况
我们可以看到有三次提交,我们需要把后两次合并成一个commit,也就是将2和3合并
首先我们记录下1的commitId,也就是1e63f960619c7f55aa06a5e438ef581957e0e98f
我们使用rebase命令开始
git rebase -i 1e63f960619c7f55aa06a5e438ef581957e0e98f
其中 -i 后面跟的参数是你想要修改的提交的父提交,意思就是你如果想要修改commit 2 的内容你就需要填写1的commitId
接下来我们会看到下面这样,输入i进入编辑模式
我们可以看到说明里面几个参数的含义
- pick : 保留这个commit
- squash :保留这个commit,但是会将这个commit融入到上一个commit
- fixup: 同squash,但是会丢弃掉log message
我们这里的需求是将commit 3 融合到commit 2,然后修改提交信息,所以我们修改如下
修改完成之后 按下 esc ,然后输入:wq 保存退出
完成之后会自动跳转到 修改message的界面
我们可以看到不带#的内容里有两条说明,我们就可以修改这个说明
修改完成后继续esc然后:wq保存退出
然后使用git log 查看信息
我们可以看到这个git已经合并了
这时候我们就可以开心的提交了
当然我们刚才看到修改的时候还可以做别的操作,比如合并好久之前commit
更多方式请看:git-工具-重写历史