恢复交互式git rebase

Zub*_*bin 28 git git-rebase

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

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

交互式rebase可以做的最后一个有用的事情就是为你删除提交.如果不是为提交行选择"选择","压缩"或"编辑",只需删除该行,它将从历史记录中删除提交.

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

Von*_*onC 59

如果您刚刚完成了rebase,您可以尝试如下所述:

git reset --hard ORIG_HEAD
Run Code Online (Sandbox Code Playgroud)

正如JakubNarębski的 详细信息:

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

如果已执行某些操作,因为在底垫中,引用日志仍然可以帮助.

  • 感谢VonC-`git reflog`是关键。 (2认同)
  • 这真是一个救星,这真的救了我的屁股. (2认同)

Phi*_* T. 13

你可以做"git reflog"并取回旧的HEAD.