6

我只是做了一个提交并将其推送给master。有一个小错字,我想在这次提交中修复它,而不是另一个。是否可以将此更改附加到当前和推送的提交中?

4

2 回答 2

5

你可以

git commit --amend
git push -f

但你不应该。一旦推送到任何远程服务器,您就不应更改历史记录。您应该在下一次提交中修复错字,或者自行提交,这是我更喜欢的。提交没有任何问题,它包含一个更改,另一方面,提交通常应该只涵盖一个“主题”。你可以建立一个“许多错别字” - 提交;)

于 2012-07-24T08:14:07.773 回答
5

重写公共历史是个坏主意

请注意,重写历史可能会导致很多问题。如果有可能其他开发人员/结帐已经取消了您的错字提交,那么请不要按照您的要求进行操作。问题是,如果我现在从你的主人那里拉出来 - 我有你的提交。如果您重写历史记录并且我再次尝试提取 - 我的结帐不再出现在您的主分支的时间线上。至少这是令人困惑的。如果我以正常方式(变基)并推送到 master - borked commit 将被放回 master 分支的历史记录,并且在你的下一次 pull 时 - 它也会回到你的历史记录。

提交修改

注意事项...

要更新最后一次提交,请执行以下操作:

git checkout master
git pull

hack hack hack

git commit -va --amend
#................^

这将更新您上次提交的内容。

更新您的遥控器,使其与您的本地主分支匹配

git push
# READ THE WARNING

git push -f

这将强制更新遥控器的历史记录以包含您更新的提交 - 并删除旧版本的“相同”提交。就是这样,在这种情况下,你输了,git 会警告你。

于 2012-07-24T08:17:10.923 回答