我在分支mybranch1上。mybranch2从mybranch1分叉,在mybranch2中进行了更改。
mybranch1
mybranch2
然后,在mybranch1上,我完成了git merge --no-commit mybranch2它显示合并时存在冲突。
git merge --no-commit mybranch2
现在我想丢弃所有内容(merge命令),以便mybranch1恢复到以前的状态。我不知道该怎么做。
merge
最新Git:
git merge --abort
这会尝试将您的工作副本重置为合并前的任何状态。这意味着它应该恢复合并前的任何未提交的更改,尽管它不能总是可靠地这样做。通常你不应该与未提交的更改合并。
在版本1.7.4之前:
git reset --merge
这是较旧的语法,但与上述语法相同。
在版本1.6.2之前:
git reset --hard
它删除了所有未提交的更改,包括未提交的合并。有时,即使在支持上述命令的较新版本的Git中,这种行为也很有用。
假设您使用的是最新的git,
实际上,值得注意的是,在给定MERGE_HEAD的情况下,git merge --abort仅等效于git reset --merge。这可以在git帮助合并命令中读取。
MERGE_HEAD
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在日常工作中更有用。
源树
如果您没有提交合并,那么只需双击另一个分支(=签出),当源代码树询问您放弃所有更改时,然后同意
有两件事你可以做第一撤消合并的命令
或
您可以通过命令临时转到您之前的提交状态
git checkout 0d1d7fc32
如果使用最新的Git,
否则,这将在旧的git版本中完成工作
由于之前没有人提到过这个,如果你得到这个错误
fatal: Could not reset index file to revision 'HEAD'.
当尝试上述方法时,您可以尝试添加文件(暂存它们),然后而不是提交git stash,您可以使用-m标志并给它一个标签,这样您就知道如果您偶然需要恢复最后一个状态,您可以使用git stash list找到藏匿。
git stash
-m
git stash list
对我来说,git reset --merge和git merge --abort失败了,上面的错误。