Git合并多次提交,改成一个简洁的提交历史
文章目录
- 前言
- 步骤
前言
在 Git 中,commit 太多可能会让历史记录变得杂乱,但是如果不想影响最终的代码,有几种方法可以“清理”历史记录,确保最终的代码保持不变。你可以使用 rebase 来重新整理提交历史,合并多次提交成一个简洁的提交。
步骤
- 查看提交历史
git log --oneline
- 启动交互式 rebase:假设你想要重新整理最近的 5 次提交
git rebase -i HEAD~5
- 编辑提交历史
在编辑器中,你会看到类似如下内容
pick a1b2c3d commit message 1
pick e4f5g6h commit message 2
pick i7j8k9l commit message 3
pick m0n1o2p commit message 4
pick q3r4s5t commit message 5
将所有 pick 改成 squash(简称 s),除了第一个提交
pick a1b2c3d commit message 1
squash e4f5g6h commit message 2
squash i7j8k9l commit message 3
squash m0n1o2p commit message 4
squash q3r4s5t commit message 5
- 保存并关闭编辑器:保存文件并关闭编辑器。Git 会将这 5 次提交合并为一个提交。
- 编辑合并后的提交信息:你会被提示编辑合并后的提交信息。在这里,你可以提供一个简洁的、描述最终代码的提交信息。保存并关闭编辑器。
- 完成 rebase:完成后,Git 会自动合并提交并更新历史记录。
- 推送更改(如果需要):如果已经推送过原来的提交到远程仓库,并且希望修改远程提交,可以强制推送
(强制推送可能会覆盖远程仓库的历史,确保与团队成员协作时谨慎使用)
git push --force