完成功能分支后,在git rebase -i
期间我意外删除了所有提交。我不完全确定,但我怀疑不是压缩我的提交,而是用提交消息替换整个条目。
http://shafiulazam.com/gitbook/4_interactive_rebasing.html说:
互动的最后一个有用的东西 rebase可以做的就是删除你的提交。 如果不是选择'选择', 提交'压缩'或'编辑' 你只需删除它就行了 将删除提交 历史。
我的问题是:有没有办法恢复/撤消这个?
答案 0 :(得分:54)
如果您刚刚完成了rebase,可以尝试mentioned here:
git reset --hard ORIG_HEAD
ORIG_HEAD
以前的HEAD
状态,由具有可能危险行为的命令设置,以便于将其还原。
现在Git有reflog它不太有用:HEAD@{1}
大致相当于ORIG_HEAD
(HEAD@{1}
始终是HEAD
的最后一个值,ORIG_HEAD
是最后一个值在危险操作之前HEAD
。
如果你已经执行了自 rebase的一些操作,reflog can still help。
答案 1 :(得分:11)
您可以执行“git reflog”并取回旧的HEAD。