在使用 Git 作为版本控制的时候,我们可能会由于各种各样的原因提交了许多临时的 commit,而这些 commit 拼接起来才是完整的任务。那么我们为了避免太多的 commit 而造成版本控制的混乱,通常我们推荐将这些 commit 合并成一个。

首先假设我们有 3 个 commit

可以看到其中分为两个部分,上方未注释的部分是填写要执行的指令,而下方注释的部分则是指令的提示说明。指令部分中由前方的命令名称、commit hash 和 commit message 组成。

当前我们只要知道 pick 和 squash 这两个命令即可。

pick 的意思是要会执行这个 commit

squash 的意思是这个 commit 会被合并到前一个 commit

其中 非注释部分就是两次的 commit message 你要做的就是将这两个修改成新的 commit message。

输入wq保存并推出 再次输入git log查看 commit 历史信息,你会发现这两个 commit 已经合并了。

注意事项:如果这个过程中有操作错误,可以使用 git rebase --abort来撤销修改,回到没有开始操作合并之前的状态。

使用这个方法,会让所有的 Push 时间都变成现在的时间。

这是副作用。