如何撤消冲突的git合并
我在分支mybranch1
。 mybranch2
从mybranch1
分叉,并在mybranch2
中进行更改。
然后,在mybranch1
,我已经完成了git merge --no-commit mybranch2
它表明在合并时存在冲突。
现在我想放弃所有东西( merge
命令),以便mybranch1
回到之前的状态。 我不知道该怎么做。
最新的Git:
git merge --abort
这会尝试将您的工作副本重置为合并前所处的状态。 这意味着它应该从合并之前恢复任何未提交的更改,尽管它并不总是如此可靠。 一般来说,您不应该合并未提交的更改。
在版本1.7.4之前:
git reset --merge
这是较老的语法,但与上述相同。
在版本1.6.2之前:
git reset --hard
这会删除所有未提交的更改,包括未提交的合并。 有时候,即使在支持上述命令的Git的新版本中,这种行为也很有用。
假设你正在使用最新的git,
git merge --abort
其实,值得注意的是, git merge --abort
只相当于git reset --merge
因为MERGE_HEAD
存在。 这可以在合并命令的git帮助中读取。
git merge --abort # is equivalent to git reset --merge when MERGE_HEAD is present.
合并失败后,当没有MERGE_HEAD
,失败的合并可以通过git reset --merge
来取消,但不一定要用git merge --abort
, 所以它们不仅是同一事物的新旧语法 。
就我个人而言,我发现git reset --merge
在日常工作中更加有用。
上一篇: How to undo a git merge with conflicts
下一篇: How to selectively merge or pick changes from another branch in Git?