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

我用git pull并发生了合并冲突。 我知道该文件的其他版本很好,而且我的文件很糟糕,所以我的所有更改都应该放弃。 我该怎么做呢?

unmerged:   _widget.html.erb

You are in the middle of a conflicted merge.

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

git reset --hard HEAD

你想要的另一件事是让他们的改变超越你的改变。

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

git pull --strategy=theirs remote_branch

但是这已经被删除,正如Junio Hamano(Git维护者)在这个消息中所解释的那样。 正如在链接中指出的,相反,你会这样做:

git fetch origin
git reset --hard origin

如果你的git版本大于1.6.1,你可以使用git reset --merge

另外,正如@迈克尔约翰逊所提到的,如果你的git版本> = 1.7.4,你也可以使用git merge --abort

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

从git merge man页面

git merge --abort相当于当MERGE_HEAD存在时git reset --merge

MERGE_HEAD在合并进行时存在。

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

如果您在开始合并之前不想提交任何更改,只需在合并或放弃合并之后将它们git stash在merge和git stash pop之前。


git merge --abort

中止当前的冲突解决过程,并尝试重新构建预合并状态。

如果合并开始时存在未提交的工作树更改, git merge --abort在某些情况下将无法重建这些更改。 因此建议在运行git merge之前始终提交或存储更改。

git merge --abort相当于当MERGE_HEAD存在时git reset --merge

http://www.git-scm.com/docs/git-merge

链接地址: http://www.djcxy.com/p/1111.html

上一篇: I ran into a merge conflict. How can I abort the merge?

下一篇: Why is the meaning of “ours” and “theirs” reversed with git