撤消git rebase

网络垫

有人知道如何轻松撤消git rebase吗?

想到的唯一方法是手动进行操作:

  • git签出两个分支的提交父对象
  • 然后从那里创建一个临时分支
  • 手动选择所有提交
  • 用手动创建的分支替换我重新建立基础的分支

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

但是,我的方法给我的印象是次优且容易出错(例如,我刚刚使用自己的两个分支进行了重新基准化)。

有任何想法吗?

澄清:我说的是一个重播,在此期间重播了很多提交。不只是一个

世邦魏理仕

最简单的方法是找到分支的头提交,就像在reflog中重新启动基础之前一样...

git reflog

并将当前分支重置为该分支(通常的警告是在使用该--hard选项进行重置之前必须绝对确定)。

假设旧的提交HEAD@{5}在引用日志中:

git reset --hard HEAD@{5}

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

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

您只需执行git log HEAD@{5}Windows :),即可检查候选旧头的历史git log "HEAD@{5}"

如果您尚未针对每个分支引用禁用它,则应该能够轻松完成,git reflog branchname@{1}因为在重新连接到最终头之前,通过变基将分支头分离。我会再次检查,尽管最近还没有验证。

默认情况下,针对非裸存储库激活所有引用日志:

[core]
    logAllRefUpdates = true

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章