我在mybranch1上。Mybranch2是从mybranch1分叉出来的,在Mybranch2中做了一些改变。
然后,在mybranch1上,我做了git merge——no-commit mybranch2 这说明合并过程中存在冲突。
现在我想放弃所有(合并命令),以便mybranch1恢复到以前的状态。 我不知道该怎么做。
我在mybranch1上。Mybranch2是从mybranch1分叉出来的,在Mybranch2中做了一些改变。
然后,在mybranch1上,我做了git merge——no-commit mybranch2 这说明合并过程中存在冲突。
现在我想放弃所有(合并命令),以便mybranch1恢复到以前的状态。 我不知道该怎么做。
当前回答
因为之前没人提到过,如果你得到这个错误
fatal: Could not reset index file to revision 'HEAD'.
当尝试上述方法时,你可以尝试添加文件(暂存它们),然后不只是提交git stash,你可以使用-m标志并给它一个标记,这样你就知道如果你碰巧需要恢复最后的状态,你可以用git stash列表找到stash。
对我来说,git reset -merge和git merge -abort失败与上述错误。
其他回答
如果使用最新的Git,
git merge --abort
否则,这将在较旧的git版本中完成工作
git reset --merge
or
git reset --hard
Sourcetree
如果你没有提交你的合并,那么只需双击另一个分支(=checkout),当sourcetree询问你关于丢弃所有更改时,然后同意
最新Git:
git merge --abort
这将尝试将工作副本重置为合并之前的状态。这意味着它应该从合并之前恢复任何未提交的更改,尽管它并不总是可靠地这样做。通常情况下,您不应该合并未提交的更改。
在版本1.7.4之前:
git reset --merge
这是较旧的语法,但与上面的相同。
在版本1.6.2之前:
git reset --hard
删除所有未提交的更改,包括未提交的合并。有时,即使在支持上述命令的较新版本的Git中,这种行为也很有用。
因为之前没人提到过,如果你得到这个错误
fatal: Could not reset index file to revision 'HEAD'.
当尝试上述方法时,你可以尝试添加文件(暂存它们),然后不只是提交git stash,你可以使用-m标志并给它一个标记,这样你就知道如果你碰巧需要恢复最后的状态,你可以用git stash列表找到stash。
对我来说,git reset -merge和git merge -abort失败与上述错误。
假设您正在使用最新的git,
git merge --abort