我在分支mybranch1上。mybranch2是从mybranch1派生出来的,在mybranch2中进行了更改。然后,在mybranch1上,我做了git merge --no-commit mybranch2。它显示了合并时存在冲突。现在我想放弃所有内容(merge命令),以便mybranch1恢复到以前的状态。我不知道该怎么办。
mybranch1
mybranch2
git merge --no-commit mybranch2
merge
vsikbqxv1#
最新Git:
git merge --abort
这将尝试将工作副本重置为合并前的任何状态。这意味着它应该从合并之前恢复任何未提交的更改,尽管它不能总是可靠地这样做。通常,您不应该与未提交的更改合并。1.7.4版之前:
git reset --merge
这是较旧的语法,但与上面的语法相同。1.6.2版之前:
git reset --hard
这将删除所有未提交的更改,包括未提交的合并。有时,这种行为甚至在支持上述命令的较新版本的Git中也是有用的。
yxyvkwin2#
实际上,值得注意的是,git merge --abort只相当于git reset --merge,因为存在MERGE_HEAD。这可以在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在日常工作中更有用。
svmlkihl3#
假设您使用的是最新的git,
lpwwtiir4#
如果使用最新的Git,
否则这将在旧的git版本中完成工作
或
s8vozzvw5#
有两件事可以首先通过命令撤消合并
或您可以通过命令暂时转到以前的提交状态
git checkout 0d1d7fc32
iswrvxsc6#
源树
如果您没有提交合并,只需双击另一个分支(= checkout ),当sourcetree询问您是否放弃所有更改时,请同意
6条答案
按热度按时间vsikbqxv1#
最新Git:
这将尝试将工作副本重置为合并前的任何状态。这意味着它应该从合并之前恢复任何未提交的更改,尽管它不能总是可靠地这样做。通常,您不应该与未提交的更改合并。
1.7.4版之前:
这是较旧的语法,但与上面的语法相同。
1.6.2版之前:
这将删除所有未提交的更改,包括未提交的合并。有时,这种行为甚至在支持上述命令的较新版本的Git中也是有用的。
yxyvkwin2#
实际上,值得注意的是,
git merge --abort
只相当于git reset --merge
,因为存在MERGE_HEAD
。这可以在merge命令的git帮助中阅读。在失败的合并之后,当没有
MERGE_HEAD
时,失败的合并可以用git reset --merge
来撤消,但不一定要使用git merge --abort
,,因此它们不仅是同一事物的新旧语法。就我个人而言,我发现
git reset --merge
在日常工作中更有用。svmlkihl3#
假设您使用的是最新的git,
lpwwtiir4#
如果使用最新的Git,
否则这将在旧的git版本中完成工作
或
s8vozzvw5#
有两件事可以首先通过命令撤消合并
或
您可以通过命令暂时转到以前的提交状态
iswrvxsc6#
源树
如果您没有提交合并,只需双击另一个分支(= checkout ),当sourcetree询问您是否放弃所有更改时,请同意