为了账号安全,请及时绑定邮箱和手机立即绑定

撤消尚未被推送的Git合并

撤消尚未被推送的Git合并

Git
森林海 2019-06-12 15:32:27
撤消尚未被推送的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.我不希望我的分支在任何数量的提交中领先。我该怎么回到那个地步?
查看完整描述

3 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

带着git reflog检查哪个提交在合并之前(git reflog将是一个比git log)。然后您可以使用以下方法重置它:

git reset --hard commit_sha

还有另一种方法:

git reset --hard HEAD~1

它会让你重获一次承诺。

请注意,任何修改和未提交/未保存的文件都将重置为未修改的状态。..把它们藏起来或者藏起来--merge选项如下。


@Velmont在以下答复中指出,在这个直接案例中,使用:

git reset --hard ORIG_HEAD

可能会产生更好的结果,因为它会保留您的更改。ORIG_HEAD会在合并发生之前直接指向提交,所以您不必自己寻找它。


进一步的技巧是使用--merge开关而不是--hard因为它没有不必要地重置文件:

git reset --merge ORIG_HEAD

-合并

重置索引并更新工作树中与<COMMIT>和HEAD不同的文件,但保留索引和工作树(即未添加的更改)之间不同的文件。


查看完整回答
反对 回复 2019-06-12
?
守着一只汪

TA贡献1872条经验 获得超3个赞

假设你的本地师父没有领先于本源/师父,你应该能够做到。

git reset --hard origin/master

然后你的本地人master分支应与origin/master.


查看完整回答
反对 回复 2019-06-12
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

看见Git书第四章莱纳斯·托瓦尔兹的原著.

若要撤消合并,请执行以下操作已经被推了:

git revert -m 1 commit_hash

如果您再次提交分支,请确保还原,就像Linus所说的。


查看完整回答
反对 回复 2019-06-12
  • 3 回答
  • 0 关注
  • 1366 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信