翻译进度
2
分块数量
2
参与人数

Git 基础:如何添加修改到你的上一个 commit 中?

这是一篇协同翻译的文章,你可以点击『我来翻译』按钮来参与翻译。


DevTools

Git 基础: 为你的上次提交添加更多更改

通过这篇文章你将会学习如何修改你的上次提交,添加(或者移除)一些更改。你也可以按照这个教程学习如何编辑您的上次提交信息。

我假设你是独自在一个分支上工作,以避免扰乱你团队成员的工作。记住:共享分支通常很难维护。


因此你有如下提交历史记录(较早的提交位于顶部):

f7f3f6d 创建 file_a 类和方法
310154e 改进 SomeOtherClass 代码
a5f4a0d 更改 变更日志文件

但是你忘记在提交记录为 a5f4a0d 中提到的变更日志文件中只加了一行。 :(

你可以简单地提交它并拥有如下历史记录:

f7f3f6d create file_a class and methods
310154e improve SomeOtherClass code
a5f4a0d update changelog file
a4gx124 add missing line to changelog

但这对你的历史记录没有好处(这只是你已经做过的改变的改变)。这里最好的情况是在一个单个提交中同时进行这两项更改。

你可以使用简单而神奇的 amend 命令来实现这一点!

请记住:在执行这些步骤之前,不要提交你想要添加到上次提交的任何更改!

修改命令的基础

只需添加修改后的文件:

$ (some_branch) git add changelog.md

并对其进行修改:

$ (some_branch) git commit --amend

执行命令后,此文件将显示(可能在 vi/vim 上。如果你不知道如何使用,请查看 this cheatsheet

更新 ChangeLog 文件
# Please enter the commit message for your changes. Lines starting
# with ‘#’ will be ignored, and an empty message aborts the commit.
#
# Author: John Doe <john@doe.com>
# Date: Thu Apr 21 22:40:30 2016 -0300
#
# On branch some_branch
# Your branch is up-to-date with ‘origin/some_branch’.
#
# Changes to be committed:
# modified: changelog.md
Weiwen 翻译于 3周前

在这里你可以编辑你的提交信息。随心所欲,然后保存文件。如果你不想更改消息,只需保存文件而不更改它。

现在你在最后一次提交和之后所做的更改将在同一个提交中!

修改提交而不更改其消息

如果您不想更改提交消息,可以运行带有 no-edit 标志的修正命令,如下所示:

$ (some_branch) git commit --amend --no-edit

你不会被“重定向”文件来编辑提交消息,就是这样!

推送修改后的提交

如果你还没有将最后一次提交推送到您的遥控器,那么一次推送就足够了。否则,你必须使用 -f 选项来推送,因为你已经重写了你的提交历史:

$ (some_branch) git push -f origin some_branch

请注意:使用 -f 推送是一件非常危险的事情。谨慎行事,并始终确保您正在推动正确的分支。

记住:永远不要重写公共分支的提交历史(如 master)。这真的会弄乱你的队友的工作。

奖励 1:只需编辑提交消息

要仅编辑提交消息(不对上次提交添加新更改),只需运行 amend 命令而不添加更改。就那么简单!

奖励 2:在不打开文件的情况下编辑提交

当然会有一个命令!只需运行:

$ (some_branch) git commit --amend -m "Your new commit message"

And there you go!

如果你想学习如何在团队中使用 Git,你应该检查一下 this other post ;)

快乐Git!

Weiwen 翻译于 3周前

本文章首发在 LearnKu.com 网站上。

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

git

原文地址:https://medium.com/@igor_marques/git-bas...

译文地址:https://learnku.com/devtools/t/71382

参与译者:2
讨论数量: 7

为啥我这个翻译完之后,没显示我呢

1个月前 评论
hustnzj (楼主) 1个月前
hustnzj (楼主) 1个月前
Tacks (作者) 1个月前

好像真的是这样@Tacks 你的翻译记录都还在。。
file

但是译者名单里却没有你了。。。
file

1个月前 评论
sreio 1个月前
hustnzj (作者) (楼主) 1个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!