如何在中止变基后应用自动加注?

时间:2016-05-16 10:48:09

标签: git rebase git-rebase git-stash

rebase.autoStash中的'true'设置为.gitconfig,这允许我在脏工作树上运行rebase。但是,如果由于某种原因导致rebase中止,则对已跟踪文件的所有更改都将消失(即不会重新应用自动暂存)。在这种情况下应用自动转发的正确方法是什么?

如何重现:

  • 运行git config rebase.autostash true
  • 编辑一些跟踪文件。
  • 运行git rebase -i HEAD^^^。这打印如下:

    Created autostash: 75a5188
    HEAD is now at f0c93f1 WIP
    
  • 中止rebase,例如编辑器退出时出现错误代码(Vim中为:cq)。

2 个答案:

答案 0 :(得分:2)

即使git无法恢复状态,您仍然可以使用git checkout <stash-id> -- .手动执行此操作,其中<stash-id>行中报告了Created autostash: ...

答案 1 :(得分:2)

您可以使用git stash applygit rebase打印的SHA-1哈希来应用自动暂存:

$ git rebase -i HEAD^^^
Created autostash: 3ac3f4a
HEAD is now at f0c93f1 WIP
# abort the rebase...    
$ git stash apply 3ac3f4a
On branch master
...