我使用 git commit --amend 来修改之前的提交。之后,当我推送我的更改时,我因为“not-fast-forward”错误而被拒绝。我在寻找答案。不幸的是,git pull --rebase
、git fetech origin
等命令不起作用。如果我的本地仓库没有冲突,为什么我的推送失败。
最佳答案
永远不要修改或改变你已经发布的提交!
如果您发布了一个提交,而其他人获取了它,则该提交将保留在那里。当您修改或 rebase 时,您创建了一个新的提交并忘记了旧的。但是当其他人已经有旧的提交时,它不会为他们更新。因此,当它们稍后 merge 时,提交的两个版本将 merge 造成严重破坏。
由于这个错误,git 会阻止你推送你已经错误发布的提交的修改版本。
规则也有异常(exception)。如果你正在推送一个没有人处理的备份,你可以在那里推送新的历史记录(这称为倒带)。如果有一个分支被宣布要倒带(例如 git 自己的“pu”分支和所有尚未在“下一个”中的主题),倒带显然没问题。
如果你确定你不会因此而引起问题,你可以告诉 git 继续并通过使用倒带
git push -f
它也是配置为镜像的 Remote 的默认设置。
请注意,某些存储库可以配置 hook 以禁止倒带或无论如何禁止倒带某些分支。
关于git-amend - git commit --amend 后出现 Git not-fast-forward 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21316534/