我正在尝试将代码从我的 GitHub 存储库中提取到我的服务器上,但由于合并冲突,拉取一直失败。我不想保留自上次拉取以来本地服务器上可能发生的任何更改。
那么有没有一种方法可以强制 Git 用 GitHub 中的任何版本覆盖,而不是因为冲突而困扰我?
如果您真的想丢弃您在本地所做的提交,即再也不会在历史记录中拥有它们,您不是在问如何拉 - 拉意味着合并,您不需要合并。您需要做的就是:
# 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
您可以使用 nvm 指向的重复链接中的答案。
或者您可以通过使用它们的更改来解决冲突(但如果您的某些更改与远程版本不冲突,则可能会保留它们):
git pull -s recursive -X theirs