我在提交中犯了个错误,我如何修正它?
我的提交历史一团糟,我该如何让它更整洁?
如果你曾经有上述问题,那么这篇文章很适合你。这篇文章介绍了一个让你成为 Git 老司机的清单。
我在提交中犯了个错误,我该怎么办?
情景 1
假设你已经提交了一堆文件,并发现输入的提交信息实际上并不清晰。现在你要更改提交消息。为此,你可以使用 git commit --amend:
git commit --amend -m “New commit message”
场景 2
假设你要提交六个文件,但你最终错误地只提交了五个文件。你可能认为可以创建新提交并将第六个文件添加到该提交。
这种方法没错。但是,为了保持整洁的提交历史,如果你可以以某种方式将此文件加入到你之前的提交本身,那岂不是更好?这也可以通过 git commit --amend 完成:
git add file6
git commit --amend --no-edit
--no-edit 表示提交信息不会更改。
场景 3
无论你何时在 Git 进行提交,提交都会附上作者名称和作者电子邮箱。通常,当你第一次配置 Git 时,就需要设置作者和电子邮箱。你无需担心每次提交的作者详细信息。
也就是说,对于特定项目,你可能希望使用不同的电子邮箱 ID。你需要使用以下命令为该项目配置电子邮箱 ID:
git config user.email “your email id”
假设你忘记配置电子邮箱,并且已经完成了第一次提交。amend 命令也可以用于更改先前提交的作者消息。可以使用以下命令更改提交的作者信息:
git commit --amend --author "Author Name <Author Email>"
注意事项
应该仅在本地仓库使用 amend 命令。在远端仓库使用 amend 命令会制造大量混乱。
我的提交历史一团糟,我该如何处理?
假设你正在处理一段代码。你知道代码大约需要十天完成。在这十天内,其他开发人员也将提交代码到远程仓库。
将本地仓库代码与远程仓库代码保持同步是个很好的做法。这在你拉取请求时会避免许多合并冲突的操作。因此,你应该每两天从远程仓库中拉取一个变更。
每次将代码从远程仓库拉取到本地仓库时,都会在本地操作中创建新的合并提交。这意味着你的本地历史提交记录会有大量的合并提交,这会让审阅人员头大。
上面是历史提交记录在本地仓库中的显示方式。
如何让历史提交记录看起来更整洁?
这就需要用到 rebase 了。
什么是变基(rebase)?
举个