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