要将 Git 的本地最近几个提交合并成一个提交,可以使用 git rebase 命令。这通常被称为“squash”提交。下面是具体的步骤:
假设场景
步骤
查看提交历史(可选):
你可以使用
git log查看最近的提交历史:git log --oneline启动交互式 rebase:
使用以下命令启动交互式 rebase,会打开一个文本编辑器:
git rebase -i HEAD~3HEAD~3表示从当前提交(HEAD)向上数三个提交。编辑 rebase 指令:
编辑器会打开一个包含最近 3 个提交的文件,看起来像这样:
pick <commit-hash-1> Commit message 1 pick <commit-hash-2> Commit message 2 pick <commit-hash-3> Commit message 3将第二行和第三行的
pick改为squash(或简写s),使其变成:pick <commit-hash-1> Commit message 1 squash <commit-hash-2> Commit message 2 squash <commit-hash-3> Commit message 3这意味着将后两个提交合并到第一个提交中。
保存并退出编辑器:
保存文件并退出编辑器。之后,Git 会提示你编辑合并后的提交消息。
编辑提交消息:
你可以编辑合并后的提交消息,然后保存并退出编辑器。
完成 rebase:
Git 将会完成 rebase 操作,并将最近的 3 个提交合并为一个提交。
假设你有以下提交历史:
abcd123 (HEAD -> feature) Commit message 3
efgh456 Commit message 2
ijkl789 Commit message 1
git rebase -i HEAD~3
然后在编辑器中将文件修改为:
保存并退出编辑器。接下来,编辑合并后的提交消息,例如:
Commit message 1 Commit message 2 Commit message 3注意事项
备份分支:在进行 rebase 操作之前,建议创建一个备份分支:
git branch backup-feature处理冲突:如果在 rebase 过程中遇到冲突,解决冲突后使用以下命令继续 rebase:
git rebase --continue强制推送:如果你已经推送过这些提交到远程仓库,你需要强制推送新的合并提交:
git push --force通过这些步骤,你可以将本地最近的几个提交合并成一个提交。
No comments yet.