我将更改推送到远程测试git repo,然后将我的本地git repo重置为HEAD ^,现在我正在尝试将我的本地仓库推送到原点,但是我得到了一个非快速前进"合并警告。如果我做了git pull
,我的本地回购会被原点所取代。
如何合并原始仓库并告诉它从原点抛弃合并或告诉原点接受我的推动,即使它不是快进?
由于
答案 0 :(得分:1)
GitHub help page确实总结得很好:
这个错误起初可能有点压倒性,不要害怕 简单地说, git无法在不丢失提交的情况下对远程进行更改,因此它拒绝推送。
通常这是由另一个用户推送到同一分支引起的 您可以通过获取和合并远程分支或使用pull来同时执行这两个操作来解决此问题。在其他情况下,此错误是使用
git commit --amend
或git rebase
等命令在本地进行破坏性更改的结果。
(在您的情况下,git reset --hard
)
虽然您可以通过将
--force
添加到push
命令来覆盖遥控器,但只有在您完全确定这是您要执行的操作时才应该这样做。
强制推送可能会导致其他已获取远程分支的用户出现问题,并被视为不良操作。
如有疑问,请勿强行推动。
问题“Git reset --hard and a remote repository”补充说,您需要了解潜在的远程配置 receive.denyNonFastForwards
,这可能会拒绝您的“git push --force
”。<登记/>
在这种情况下,需要进行某种恢复:“GIT revert to previous commit… how?”讨论了替代方案。