学会这两件事,让你成为 Git 老司机_java


  • 我在提交中犯了个错误,我如何修正它?

  • 我的提交历史一团糟,我该如何让它更整洁?


如果你曾经有上述问题,那么这篇文章很适合你。这篇文章介绍了一个让你成为 Git 老司机的清单。


我在提交中犯了个错误,我该怎么办?


学会这两件事,让你成为 Git 老司机_java_02


情景 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 命令会制造大量混乱。


我的提交历史一团糟,我该如何处理?


假设你正在处理一段代码。你知道代码大约需要十天完成。在这十天内,其他开发人员也将提交代码到远程仓库。


将本地仓库代码与远程仓库代码保持同步是个很好的做法。这在你拉取请求时会避免许多合并冲突的操作。因此,你应该每两天从远程仓库中拉取一个变更。


每次将代码从远程仓库拉取到本地仓库时,都会在本地操作中创建新的合并提交。这意味着你的本地历史提交记录会有大量的合并提交,这会让审阅人员头大。


学会这两件事,让你成为 Git 老司机_java_03


上面是历史提交记录在本地仓库中的显示方式。


如何让历史提交记录看起来更整洁?


这就需要用到 rebase 了。


什么是变基(rebase)?


举个