自重组开始以来,中止了旧的git rebase并失去了承诺
扯淡! 大约一个星期前,我试图清理我的存储库时重新绑定了一些提交,显然我没有真正完成它。 今天,接下来的一周和几次提交,我从今天开始重新排序几次提交,并且告诉我我已经处于转换阶段。
这应该是为了防万一复制我的回购。 但我没有...,而是我跑git rebase --abort
当时听起来正确。 那是不对的。 它从一周前中止了重新设定,并将主人的头部重置为旧的头部。 假!
我还有其他几个分支机构,这些分支机构相当新,而且我已经推动了几次,但最近的变化似乎永远消失了。 我不具备适当级别的git-fu,以了解是否有任何方法可以恢复我的更改。
我拧了吗?
编辑 - 哇! 多谢你们! git reflog
非常棒! 我完全康复了...吸取了教训。 标记Tchalvak的答案被接受为第一个发布。
检查git reflog
。 在几乎所有情况下,您都可以使用这些提交散列作为参考。
我还将其他地方的git repo目录作为一个地方进行复制,以做初步测试,看看哪些工作会发生,这样你就可以随心所欲地乱用任何你想要的东西,而不会丢失未跟踪的文件,或者让事情进入一种你不能回来的状态从。
您应该能够使用git reflog
获取最近提交的SHA1(在rebase --abort后消失)。
然后,您可以将当前分支重置为这些SHA1
# Suppose the old commit was HEAD@{2} in the ref log
git reset --hard HEAD@{2}
这有点像“撤销git reset --hard HEAD~1
”。
有关恢复的其他示例,另请参阅“使用Git恢复丢失的提交的说明性指南”。
链接地址: http://www.djcxy.com/p/23535.html上一篇: Aborted old git rebase and lost commits since the rebase started