撤消尚未被推送的Git合并

撤消尚未被推送的Git合并

在我的支部里,我做了一个git merge some-other-branch本地,但从未将更改推送到原主。我不是有意合并,所以我想撤销它。当做一个git status在我合并后,我收到了这样的信息:

# On branch master
# Your branch is ahead of 'origin/master' by 4 commits.

基于我找到的指示我试着跑

git revert HEAD -m 1

但现在我收到了这条信息git status:

# On branch master
# Your branch is ahead of 'origin/master' by 5 commits.

我不希望我的分支在任何数量的提交中领先。我该怎么回到那个地步?


森林海
浏览 1367回答 3
3回答

慕的地10843

带着git reflog检查哪个提交在合并之前(git reflog将是一个比git log)。然后您可以使用以下方法重置它:git&nbsp;reset&nbsp;--hard&nbsp;commit_sha还有另一种方法:git&nbsp;reset&nbsp;--hard&nbsp;HEAD~1它会让你重获一次承诺。请注意,任何修改和未提交/未保存的文件都将重置为未修改的状态。..把它们藏起来或者藏起来--merge选项如下。@Velmont在以下答复中指出,在这个直接案例中,使用:git&nbsp;reset&nbsp;--hard&nbsp;ORIG_HEAD可能会产生更好的结果,因为它会保留您的更改。ORIG_HEAD会在合并发生之前直接指向提交,所以您不必自己寻找它。进一步的技巧是使用--merge开关而不是--hard因为它没有不必要地重置文件:git&nbsp;reset&nbsp;--merge&nbsp;ORIG_HEAD-合并重置索引并更新工作树中与<COMMIT>和HEAD不同的文件,但保留索引和工作树(即未添加的更改)之间不同的文件。

守着一只汪

假设你的本地师父没有领先于本源/师父,你应该能够做到。git&nbsp;reset&nbsp;--hard&nbsp;origin/master然后你的本地人master分支应与origin/master.

小怪兽爱吃肉

看见Git书第四章和莱纳斯·托瓦尔兹的原著.若要撤消合并,请执行以下操作已经被推了:git&nbsp;revert&nbsp;-m&nbsp;1&nbsp;commit_hash如果您再次提交分支,请确保还原,就像Linus所说的。
打开App,查看更多内容
随时随地看视频慕课网APP