我正在尝试将GitHub代码库中的代码拉到我的服务器上,但由于合并冲突,拉取一直失败。我不想保留自上次拉取以来在本地服务器上可能发生的任何更改。
那么有没有办法强制Git覆盖GitHub中的版本,而不用麻烦我处理冲突呢?
我正在尝试将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上创建一个备份分支,以便如果您意识到这是个坏主意,您不会失去它的踪迹。
另一方面,如果您想保留这些提交并让它看起来像是与origin合并,并使合并仅保留来自origin的版本,则可以使用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
origin/main
,不再是 origin/master
。 - bixiou您可以使用nvm指向的重复链接中的答案。
或者,您可以通过使用其更改来解决冲突(但如果它们与远程版本不冲突,则可能保留某些更改):
git pull -s recursive -X theirs
X
选项被传递到合并策略,只有在合并两个头时才是recursive
,所以您的命令会报错“"Could not find merge strategy 'theirs'。
Available strategies are: octopus ours recursive resolve subtree."” - 这很遗憾,因为可以在配置中设置X
(例如git config pull.twohead theirs
),但不能设置s
。 - OJFord