我正在尝试将代码从我的GitHub仓库中提取到我的服务器上,但由于合并冲突,拉动仍然失败。我不想保留自上次拉动以来本地服务器上可能发生的任何更改。
那么有没有办法可以强制Git用GitHub中的任何版本覆盖,而不是打扰我的冲突?
答案 0 :(得分:425)
如果你真的想要丢弃你在本地制作的提交,也就是说再也没有在历史上留下它们了,那你就不会问拉 - 拉意味着合并,你不要需要合并。你所需要做的就是:
# fetch from the default remote, origin
git fetch
# reset your current branch (master) to origin's master
git reset --hard origin/master
我个人建议首先在你当前的HEAD上创建一个备份分支,这样如果你意识到这是一个坏主意,你就不会忘记它了。
另一方面,如果您希望保留这些提交并使其看起来好像与原点合并,并导致合并仅保留原始版本,则可以使用ours
合并策略:
# fetch from the default remote, origin
git fetch
# create a branch at your current master
git branch old-master
# reset to origin's master
git reset --hard origin/master
# merge your old master, keeping "our" (origin/master's) content
git merge -s ours old-master
答案 1 :(得分:113)
您可以使用nvm指向的重复链接中的答案。
或者您可以通过使用更改来解决冲突(但如果它们与远程版本不冲突,则可能会保留一些更改):
git pull -s recursive -X theirs