首先利用git log查看commit记录,假设我们现在有4个 commit。
我们需要将 69c5cdd以及e3f6b15
合并成一个 commit,那么我们输入如下命令
其中,-i
的参数是不需要合并的 commit 的 hash 值,这里指的是从上往下的第四条commit,也是四个commit中最早的一条。 git rebase -i xxxxxxx 表示哈希值为xxxxxxx的commit之后的所有commit都可以更改。将接着我们就进入到 合并commit的编辑模式。
可以看到其中分为两个部分,上方未注释的部分是可以修改的指令,而下方注释的部分则是指令的提示说明。指令部分由命令名称(pick、squash等)、commit hash 和 commit message 组成。
当前我们只要知道 pick
和 squash
这两个命令即可。
pick
的意思是要会执行这个 commitsquash
的意思是这个 commit 会被合并到上一个commit
我们将 69c5cdd
这个 commit 前方的命令pick改成 squash
或 s
,然后输入:wq
以保存并退出。
此时我们就是可以对69c5cdd和e3f6b15这两条commit修改。
退出后,我们会进入到修改commit message 的界面。
其中, 非注释部分就是这两次的commit message, 你要做的就是将这两个message注释掉或者删掉,写一个新的commit message。
我们这里改成 This is a test conbiantion message!
输入wq
保存并推出, 再次输入git log
查看 commit 历史信息,你会发现这两个 commit 已经合并了。
注意事项:如果这个过程中有操作错误,可以使用 git rebase --abort
来撤销修改,回到没有开始操作合并之前的状态。