恢复交互式git rebase

时间:2011-03-21 07:55:29

标签: git git-rebase

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

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

  

互动的最后一个有用的东西   rebase可以做的就是删除你的提交。   如果不是选择'选择',   提交'压缩'或'编辑'   你只需删除它就行了   将删除提交   历史。

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

2 个答案:

答案 0 :(得分:54)

如果您刚刚完成了rebase,可以尝试mentioned here

git reset --hard ORIG_HEAD

Jakub Narębski details

  

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

如果你已经执行了 rebase的一些操作,reflog can still help

答案 1 :(得分:11)

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