36

完成一个功能分支后,git rebase -i我不小心删除了所有提交。我不完全确定,但我怀疑我没有压缩我的提交,而是用提交消息替换了整个条目。

http://shafiulazam.com/gitbook/4_interactive_rebasing.html说:

交互式 rebase 可以做的最后一件有用的事情是为您删除提交。如果不是为提交行选择“pick”、“squash”或“edit”,您只需删除该行,它将从历史记录中删除该提交。

我的问题是:有没有办法恢复/撤消这个?

4

2 回答 2

75

如果您刚刚完成了变基,您可以按照此处所述进行尝试:

git reset --hard ORIG_HEAD

作为Jakub Narębski 的 详细信息

ORIG_HEAD是 的先前状态HEAD,由可能具有危险行为的命令设置,以便于恢复它们。
现在 Git 有 reflog:HEAD@{1}的用处不大:大致相当于ORIG_HEADHEAD@{1}始终是 的最后一个值HEADORIG_HEADHEAD危险操作之前的最后一个值)。

如果你在 rebase 之后执行了一些操作,那么reflog仍然可以提供帮助

于 2011-03-21T08:01:03.183 回答
15

您可以执行“git reflog”并取回您的旧 HEAD。

于 2011-03-21T08:14:47.540 回答