如何撤消具有冲突的git合并

drnojrws  于 2022-10-23  发布在  Git
关注(0)|答案(6)|浏览(484)

我在分支mybranch1上。mybranch2是从mybranch1派生出来的,在mybranch2中进行了更改。
然后,在mybranch1上,我做了git merge --no-commit mybranch2。它显示了合并时存在冲突。
现在我想放弃所有内容(merge命令),以便mybranch1恢复到以前的状态。我不知道该怎么办。

vsikbqxv

vsikbqxv1#

最新Git:

git merge --abort

这将尝试将工作副本重置为合并前的任何状态。这意味着它应该从合并之前恢复任何未提交的更改,尽管它不能总是可靠地这样做。通常,您不应该与未提交的更改合并。
1.7.4版之前:

git reset --merge

这是较旧的语法,但与上面的语法相同。
1.6.2版之前:

git reset --hard

这将删除所有未提交的更改,包括未提交的合并。有时,这种行为甚至在支持上述命令的较新版本的Git中也是有用的。

yxyvkwin

yxyvkwin2#

实际上,值得注意的是,git merge --abort只相当于git reset --merge,因为存在MERGE_HEAD。这可以在merge命令的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在日常工作中更有用。

svmlkihl

svmlkihl3#

假设您使用的是最新的git,

git merge --abort
lpwwtiir

lpwwtiir4#

如果使用最新的Git,

git merge --abort

否则这将在旧的git版本中完成工作

git reset --merge

git reset --hard
s8vozzvw

s8vozzvw5#

有两件事可以首先通过命令撤消合并

git merge --abort


您可以通过命令暂时转到以前的提交状态

git checkout 0d1d7fc32
iswrvxsc

iswrvxsc6#

源树

如果您没有提交合并,只需双击另一个分支(= checkout ),当sourcetree询问您是否放弃所有更改时,请同意

相关问题