【问题标题】:Rollback a pushed rebase回滚推送的变基
【发布时间】:2012-06-17 20:02:24
【问题描述】:

在尝试 rebase 到 master 后,我的分支弄得一团糟。

在我的提交历史中,我进行了相当多的重构(重命名和移动),以及删除类。而且我不应该推送到远程存储库。 (我知道,从那以后我就在踢自己)。

但是,已经完成的事情已经完成。现在,由于 rebase 重写了历史记录和提交(?)(通过 rebase 期间的冲突解决),我无法重置为更早的提交 HEAD~2 重新开始,所有提交都被重写并且提交错误。

我可以从 git 获取 HEAD~2 的快照,有没有办法将快照合并(变基)回我的分支,回滚更改,然后重新开始?

提前致谢!

大卫

更新,从我们内部的 git 网页,我可以看到之前的提交:

commit  6f577850231fed07eebdacd3bc5862f84356d803
tree    8be1d60056697bc1b8d7284c4e85a6d1738ac3e2    tree | snapshot
parent  1ca61d4dd69b7be649906834d44bb7fec390153d    commit | diff

我可以通过单击“快照”链接在 gz 中下载快照。 但是,当我尝试这样做时:

git checkout -b newBranch 6f577850231fed07eebdacd3bc5862f84356d803

我明白了:

fatal: reference is not a tree: 6f577850231fed07eebdacd3bc5862f84356d803

如果我跑:

git checkout -b --force newBranch 6f577850231fed07eebdacd3bc5862f84356d803

我明白了:

fatal: git checkout: updating paths is incompatible with switching branches.

我猜这个提交只驻留在远程存储库中?那么如何在 git 中签出呢?

解决方案: 这个 SO 答案是我的问题的解决方案:Undoing a git rebase

【问题讨论】:

  • I made a mess on my branch... 和你的问题......真的吗?只有一长行文字?我绝对不会读那个,你真的需要学习如何组织。

标签: git rollback rebase


【解决方案1】:
fatal: reference is not a tree: 6f577850231fed07eebdacd3bc5862f84356d803

OP David Zhao 发现不完整的变基或无效的 HEAD 引用也可能触发该消息:
"Undoing a git rebase"

git reset --hard HEAD@{x},其中“x”是在git reflog 中找到的 HEAD 引用。


最初的答案:子模块也会发生这种情况(这里不是这种情况)

见“Git submodule head 'reference is not a tree' error”:

有人做了一个超级项目提交,它引用了子模块 sub 中未发布的提交。

所以,如果你有子模块,你需要确保父 repo 和子模块是同步的,然后获取父 repo(更新它们在你的 gitweb 页面中显示的历史)到你的 local repo,在您开始检查任何提交之前。
如果该提交来自子模块,请先转到该子模块目录,然后再进行结帐。

从那里,您可以将该分支合并回您推送的分支(例如,'master'),创建一个 new 提交(因此不会重写历史记录),选择“git command for making one branch like another”中描述的方法之一。

【讨论】:

  • 我们没有子模块。我认为提交与分支分离,因此它不属于父级。虽然我仍然可以在 tarball 中下载整个源代码树。会是这样吗?有没有办法让我重新连接它?谢谢!
  • @DavidZhao 您是否看到(在获取后)在您的 reflog 中提交? (git reflog) blog.pioneeringsoftware.co.uk/2012/01/13/… 是关于重新附加一个分支......但又是在一个子模块中。那么您确定不涉及子模块吗?
  • 我确定我们没有子模块。实际上,我被指出了这个 SO 问题:stackoverflow.com/questions/134882/undoing-a-git-rebase git reflog 和 git reset --hard HEAD@{5} 就像一个魅力
  • @DavidZhao 好的,我已经编辑了我的答案以引用该解决方案,以获得更多可见性。
猜你喜欢
  • 2019-10-01
  • 1970-01-01
  • 2017-04-24
  • 1970-01-01
  • 2013-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多