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

撤消git重基

撤消git重基

Git
倚天杖 2019-06-19 14:58:32
撤消git重基有人知道如何轻松地撤销git重基吗?想到的唯一办法就是手动完成:Git签出两个分支的提交父级。然后从那里创建临时分支。樱桃-全部手工提交替换我用手动创建的分支重新建立基础的分支。在我目前的情况下,这是可行的,因为我可以很容易地发现两个分支的提交(一个是我的东西,另一个是我同事的东西)。然而,我的方法给我的印象是次优和容易出错(假设我刚刚使用了我自己的两个分支)。有什么想法吗?澄清:我说的是重基,在此期间,重放了一堆提交。不止一个。
查看完整描述

3 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

最简单的方法是找到分支的头提交,就像在重基开始之前在雷击...

git reflog

并将当前分支重置为它(通常在使用--hard备选方案)。

假设以前的承诺是HEAD@{5}在参考日志中:

git reset --hard HEAD@{5}

在Windows中,您可能需要引用以下引用:

git reset --hard "HEAD@{5}"

您只需做一个git log HEAD@{5} (窗户: git log "HEAD@{5}").

如果您没有禁用每个分支重放,您应该可以简单地这样做。git reflog branchname@{1}作为重基,在重新连接到最终的头之前,分离分支头。我会再次检查这个,虽然我最近还没有核实过。

默认情况下,对于非裸存储库,将激活所有REFLOG:

[core]
    logAllRefUpdates = true


查看完整回答
反对 回复 2019-06-19
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

实际上,重基将您的起点保存到ORIG_HEAD所以这通常很简单:

git reset --hard ORIG_HEAD

但是,resetrebasemerge全部保存你的原作HEAD指针入ORIG_HEAD因此,如果您在试图撤消重基之后执行了任何这些命令,那么您将不得不使用reflg。


查看完整回答
反对 回复 2019-06-19
?
潇湘沐

TA贡献1816条经验 获得超6个赞

查尔斯的答案很有效,但你可能想这样做:

git rebase --abort

清理完reset.

否则,你可能会收到消息“Interactive rebase already started”.


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

添加回答

举报

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