一尘不染

我遇到了合并冲突。如何中止合并?

javascript

我使用git pull并遇到了合并冲突:

unmerged:   _widget.html.erb

You are in the middle of a conflicted merge.

我知道该文件的另一个版本是好的,而我的是坏的,所以我的所有更改都应该被放弃。我怎样才能做到这一点?


阅读 250

收藏
2022-01-24

共2个答案

一尘不染

如果您的 git 版本 >= 1.6.1,则可以使用git reset --merge.

此外,正如@Michael Johnson 所提到的,如果您的 git 版本 >= 1.7.4,您也可以使用git merge --abort.

与往常一样,请确保在开始合并之前没有未提交的更改。

git merge 手册页

git merge --abort相当于git reset --merge何时MERGE_HEAD出现。

MERGE_HEAD 正在进行合并时出现。

此外,关于开始合并时未提交的更改:

如果您有不想在开始合并之前提交的更改,只需git stash在合并之前和git stash pop完成合并或中止它之后提交。

2022-01-24
一尘不染

由于您pull不成功,因此HEAD(not HEAD^) 是您分支上的最后一个“有效”提交:

git reset --hard HEAD

您想要的另一部分是让他们的更改覆盖您的更改。

旧版本的 git 允许您使用“他们的”合并策略:

git pull --strategy=theirs remote_branch

但这已被删除,正如Junio Hamano(Git 维护者)在此消息中所解释的那样。如链接中所述,您可以这样做:

git fetch origin
git reset --hard origin
2022-01-24