合并最近的 N 个 commits

执行 rebase 命令

1
2
3
4
git rebase -i HEAD~N

# 例如合并最新的 3 个 commit, 命令就是
# git rebase -i HEAD~3

终端会打开一个编辑器:

1
2
3
pick a1b2c3 commit message 1
pick d4e5f6 commit message 2
pick g7h8i9 commit message 3

第一个词有三个选项:

  • pick 保留 commit
  • squash 合并到上一个 commit,保留 message
  • fixup 合并,但是丢掉 message

例如说可以改成这样

1
2
3
pick a1b2c3 commit message 1
squash d4e5f6 commit message 2
squash g7h8i9 commit message 3

保存退出后,git 会让你编辑最终的 commit message.然后最终呈现的就是单个 commit

1
a1b2c3 some new combined commit