在日常开发中,有效地管理提交记录是确保代码库清晰与可维护性的关键。以下是一些 Git 中常用的 Commit 操作,帮助你更好地管理和优化提交历史。
修改最近一次提交
当你发现最近的一次提交存在错误或需要添加额外更改时,无需创建新的提交。你可以通过将更改添加到暂存区后执行 git commit --amend
命令来更新最近的一次提交。这不仅能够保持提交历史的整洁,还可以避免不必要的提交堆积。
修改多条提交记录
对于需要修改多个提交的情况,可以使用交互式变基功能。首先,执行命令 git rebase -i HEAD~n,其中 n 是你希望回溯的提交数量。在打开的文本编辑器中,将想要修改的提交前的 pick 更改为 edit。完成更改后,保存并关闭编辑器。Git 将暂停在每个标记为 edit 的提交处,允许你做出相应的调整。完成所有必要的更改后,记得运行 git rebase --continue
继续变基过程。
合并提交
当多个提交之间存在逻辑关联或希望简化提交历史时,可以通过交互式变基将它们合并。同样地,从 git rebase -i HEAD~n 开始,这次将要合并的提交前的 pick 更改为 squash 或简写为 s。这样,Git 会将选定的提交合并到前一个提交中,并允许你编辑合并后的提交信息。完成合并后,使用 git rebase --continue
完成剩余的变基步骤。最后,由于这些操作改变了提交历史,别忘了强制推送更改至远程仓库(git push –force),但在此之前,请确保与团队成员沟通以避免冲突。
还原现有提交
1 | git revert HEAD~3 |
还原 HEAD 中倒数第四个提交指定的更改,并创建一个包含还原更改的新提交。
1 | git revert -n master~5..master~2 |
将 master 中倒数第五次提交(包含)到 master 中倒数第三次提交(包含)的改动还原,但不创建任何包含还原改动的提交。还原只会修改工作区和索引。
注意:
区间,不包含左边界点,包含右边界点
-n 不会自动创建新的 commit 并提交,还原的 commit 会被放入暂存区
不加-n 默认自动创建新的 commit 并提交