撤消git重基

撤消git重基

有人知道如何轻松地撤销git重基吗?

想到的唯一办法就是手动完成:

  • Git签出两个分支的提交父级。
  • 然后从那里创建临时分支。
  • 樱桃-全部手工提交
  • 替换我用手动创建的分支重新建立基础的分支。

在我目前的情况下,这是可行的,因为我可以很容易地发现两个分支的提交(一个是我的东西,另一个是我同事的东西)。

然而,我的方法给我的印象是次优和容易出错(假设我刚刚使用了我自己的两个分支)。

有什么想法吗?

澄清:我说的是重基,在此期间,重放了一堆提交。不止一个。


倚天杖
浏览 659回答 3
3回答

BIG阳

最简单的方法是找到分支的头提交,就像在重基开始之前在雷击...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

繁星淼淼

实际上,重基将您的起点保存到ORIG_HEAD所以这通常很简单:git reset --hard ORIG_HEAD但是,reset, rebase和merge全部保存你的原作HEAD指针入ORIG_HEAD因此,如果您在试图撤消重基之后执行了任何这些命令,那么您将不得不使用reflg。

潇湘沐

查尔斯的答案很有效,但你可能想这样做:git rebase --abort清理完reset.否则,你可能会收到消息“Interactive rebase already started”.
打开App,查看更多内容
随时随地看视频慕课网APP