如何撤消git merge与冲突

我在分支mybranch1mybranch2mybranch1分叉,并在mybranch2中进行更改。

然后,在mybranch1 ,我已经完成了git merge --no-commit mybranch2它显示合并时有冲突。

现在我想放弃一切( merge命令),以便mybranch1回到以前的状态。 我不知道如何去做这件事。

最新的Git:

 git merge --abort 

这会尝试将您的工作副本重置为合并前的状态。 这意味着它应该从合并之前恢复任何未提交的更改,尽pipe它并不总是如此可靠。 一般来说,不应该合并未提交的更改。

在版本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在日常工作中更加有用。