Git:强制拉动以覆盖本地更改

sir*_*ver 5 git

我希望我的本地分支与远程分支相同。当我从远程分支中拉取时,我遇到了冲突,在这种情况下,我不想解决它们而只想从远程分支获取最新版本。

我在本地分支中使用硬拉:

git reset -- hard

git pull
Run Code Online (Sandbox Code Playgroud)

然而,当拉我得到错误:

Automatic merge failed; fix conflicts and then commit the result.
Run Code Online (Sandbox Code Playgroud)

为什么?如何通过覆盖拉动远程分支?我想到了一种解决方法,即删除我的本地分支并创建一个新分支然后拉取,但是有更好的方法吗?

Tim*_*sen 7

尝试git fetch使(本地)远程跟踪分支与远程版本保持同步,然后将本地分支硬重置为:

# from local
git fetch origin
git reset --hard origin/local
Run Code Online (Sandbox Code Playgroud)

至于为什么即使在硬重置后仍然出现合并冲突,这可以通过一些事情来解释。一般的解释是您的本地分支具有远程版本中不存在的提交。在这种情况下,Git 不能简单地快进您的本地分支,而必须求助于进行合并,这可能会导致冲突。

  • 哦,我现在明白了,所以在最后一个命令中,如果我的本地分支是开发,我应该输入“git reset --hard origin/development”?谢谢,我还是 git 新手 (4认同)