git 合并多个 commit

git 合并多个 commit

使用命令

git rebase -i commit的hash值

步骤

最一开始是这样的 5 个 commit ,message 分别是 1 2 3 4 5
git 合并多个 commit
我们想将 2 3 4 5 这 4 个合并

  1. 执行 git rebase -i 417b75258e088be649fad163701207049e11acbe 得到下图
    git 合并多个 commit
  2. 把 pick 改为 s 或者 squash(具体 s 的含义看 Commands 中每一条的解释,已经很清楚了),怎么改看 vim 的用法( i 编辑, :wq 退出)
    git 合并多个 commit
  3. 上述操作为将 3 4 5 的 commit 合并到 2 上,此时保存并退出得到如下界面,4 个 message 很清楚的展示出来,随便删其中的三条( dd 快捷键),保留一条作为合并后的 message ,也支持修改
    git 合并多个 commit
  4. 我是这么改的,改完保存退出
    git 合并多个 commit
  5. 此时修改成功了,2 3 4 5 成功被合并,并且 message 被修改为 2345,且 commit 的 hash 值是新的
    git 合并多个 commit
  6. 如需要向远程仓库推,执行 git push -f 即可(git push -f 这条命令平时不要随便用)