Git 将多条commit合并为一条

一、背景

  • 在做新功能开发的过程中,往往会涉及多次 commit
  • 通常来说,在发布版本时,多次提交会直接 push 到主分支。
  • 但在某些特殊情况,限制我们只能做一次提交,这时候需要进行 commit 合并了。

二、找出要合并的提交记录

  • 可以通过 git log 命令找出最近的提交记录。
  • 使用 IDEAAndroid Studio 开发的话,直接就能在底部的工具栏中可以看到提交记录。

三、合并提交

  • 如上图所示,要合并最近的 4 条记录,可以有 2 种方法:
1
git rebase -i HEAD~4
  • 或者:
1
git rebase -i fc2bc000
  • 其中的 HEAD~4 表示最近的4次提交,fc2bc000 为4次提交的父记录,即倒数第5次提交。

  • 在弹出的界面,按 i 进入编辑模式,并将后面3条记录的 pick 改为 ssquash
  • ESC 退出编辑模式,再输入 :wq 保存修改记录并退出。

  • 然后弹出合并后的 commit 界面。注释掉无效的行数,修正提交记录,保存退出。

  • 这时候再看提交记录,已经变成一条啦!

四、推送到远端

  • 执行 git push -f 命令将修改推送到远端。
  • 如果代码没提交过,可以直接通过 git push 推送,如果已经提交过,则可能提示 git pull xxx,不用管它直接 force 推送。
1
2
3
git push -f
或者
git push origin xxx/xxx -f


Git 将多条commit合并为一条
http://jxr202.github.io/git/Git-将多条commit合并为一条-284c94093d2c/
作者
Jiang
发布于
2022年10月17日
许可协议