我在分支上mybranch1
。mybranch2
从中分叉mybranch1
并在 中进行了更改mybranch2
。
然后,在 on 时mybranch1
,我已经完成了git merge --no-commit mybranch2
它表明合并时存在冲突。
现在我想丢弃所有内容(merge
命令),以便mybranch1
恢复到以前的状态。我不知道我该怎么做。
我在分支上mybranch1
。mybranch2
从中分叉mybranch1
并在 中进行了更改mybranch2
。
然后,在 on 时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 中,这种行为也很有用。
实际上,值得注意的是,thatgit merge --abort
仅等同于git reset --merge
given that MERGE_HEAD
is present。这可以在 git help for merge 命令中阅读。
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,
git merge --abort
如果使用最新的 Git,
git merge --abort
否则这将在较旧的 git 版本中完成工作
git reset --merge
或者
git reset --hard
您可以做两件事,首先通过命令撤消合并
git merge --abort
或者
你可以通过命令暂时进入你之前的提交状态
git checkout 0d1d7fc32
源树
如果您不提交合并,则只需双击另一个分支(=checkout),当 sourcetree 询问您是否放弃所有更改时,请同意