小编典典

从 Git 远程拉取时使用远程更改解决冲突

all

我正在尝试从我的 GitHub 存储库中将代码提取到我的服务器上,但由于合并冲突,拉取一直失败。自上次拉取以来,我不想保留本地服务器上可能发生的任何更改。

那么有没有一种方法可以强制 Git 用 GitHub 中的任何版本覆盖,而不是因为冲突而困扰我?


阅读 93

收藏
2022-04-13

共1个答案

小编典典

如果您真的想丢弃您在本地所做的 提交 ,即不再将它们放在历史记录中,那么您不是在问如何拉 - 拉意味着合并,并且您不需要合并。您需要做的就是:

# 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
2022-04-13