我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
)。
答案 0 :(得分:2)
即使git无法恢复状态,您仍然可以使用git checkout <stash-id> -- .
手动执行此操作,其中<stash-id>
行中报告了Created autostash: ...
答案 1 :(得分:2)
您可以使用git stash apply
和git 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
...