Git commit --amend后Git not-fast-forward错误

时间:2014-01-23 18:33:28

标签: git amend git-commands

我使用git commit --amend修改了之前的提交。在那之后,当我推动我的更改时,由于'not -fast-forward'错误,我被拒绝了。我找到了答案。不幸的是,git pull --rebasegit fetech origin等命令不起作用。如果我的本地仓库没有冲突,为什么我的推送失败。

2 个答案:

答案 0 :(得分:5)

永远不会修改或重新提交您已经发布的承诺!

如果你发布了一个提交而其他人提取它,那么提交就会保留。修改或改组时,您创建一个新提交并忘记旧提交。但是当其他人已经拥有旧提交时,它将不会为它们更新。因此,当他们稍后合并时,提交的两个版本将合并造成破坏。

有了这个错误,git阻止你推送你已经错误发布的修改版本的提交。

规则有例外。如果你想要一个没有人工作的备份,你可以在那里推送新的历史(称为倒带)。如果有一个分支被宣布为倒带(例如git自己的“pu”分支以及所有主题尚未在“next”中),那么倒带显然很好。

如果您确定不会因此而导致问题,您可以告诉git继续使用

进行回放
git push -f

对于配置为镜像的遥控器,它也是默认值。

请注意,某些存储库可以配置钩子以禁止倒带或禁止重绕某些分支。

答案 1 :(得分:2)

这是因为提交已经在远程仓库中,因此您必须rewrite history

这意味着你必须进行强制推动:

git push -f

但要小心,如果你与其他人合作,他们会遇到麻烦,因为重写历史不是一件好事。