我遇到了合并冲突。 我如何中止合并?
我用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