关于git pull:从Git remote拉取时使用远程更改解决冲突

Resolve conflicts using remote changes when pulling from Git remote

我试图将代码从Github repo拉到服务器上,但由于合并冲突,拉操作一直失败。我不想保留自上次拉取之后本地服务器上可能发生的任何更改。

那么有没有一种方法可以强迫Git用GitHub中的任何版本覆盖它,而不是让我为冲突而烦恼呢?


如果你真的想放弃你在当地所做的承诺,也就是说,再也没有在历史上做过承诺,你不会问如何拉-拉意味着合并,你也不需要合并。你所需要做的就是:

1
2
3
4
# fetch from the default remote, origin
git fetch
# reset your current branch (master) to origin's master
git reset --hard origin/master

我个人建议首先在您当前的头上创建一个备份分支,这样如果您意识到这是一个坏主意,您就不会忘记它。

另一方面,如果您希望保留这些提交并使其看起来像是与origin合并,并使合并仅保留来自origin的版本,则可以使用ours合并策略:

1
2
3
4
5
6
7
8
# 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指向的重复链接的答案。

或者,您可以通过使用它们的更改来解决冲突(但如果某些更改与远程版本不冲突,则可能保留这些更改):

1
git pull -s recursive -X theirs