如何在中止 rebase 后应用自动存储?
How do I apply autostash after an aborted rebase?
我在我的 .gitconfig
中将 rebase.autoStash
设置为 'true'
,这允许我在脏工作树上 运行 rebase
。但是,如果 rebase
由于某种原因中止,所有对跟踪文件的更改都会消失(即不会重新应用自动存储)。在这种情况下应用自动存储的正确方法是什么?
如何重现:
- 运行
git config rebase.autostash true
.
- 编辑一些跟踪文件。
运行git rebase -i HEAD^^^
。这会打印出如下内容:
Created autostash: 75a5188
HEAD is now at f0c93f1 WIP
中止变基,例如让编辑器退出并显示错误代码(Vim 中的:cq
)。
即使 git 未能恢复状态,您始终可以使用 git checkout <stash-id> -- .
手动完成,其中 <stash-id>
报告在 Created autostash: ...
行
您可以使用 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
...
我在我的 .gitconfig
中将 rebase.autoStash
设置为 'true'
,这允许我在脏工作树上 运行 rebase
。但是,如果 rebase
由于某种原因中止,所有对跟踪文件的更改都会消失(即不会重新应用自动存储)。在这种情况下应用自动存储的正确方法是什么?
如何重现:
- 运行
git config rebase.autostash true
. - 编辑一些跟踪文件。
运行
git rebase -i HEAD^^^
。这会打印出如下内容:Created autostash: 75a5188 HEAD is now at f0c93f1 WIP
中止变基,例如让编辑器退出并显示错误代码(Vim 中的
:cq
)。
即使 git 未能恢复状态,您始终可以使用 git checkout <stash-id> -- .
手动完成,其中 <stash-id>
报告在 Created autostash: ...
行
您可以使用 git stash apply
和 git rebase
:
$ git rebase -i HEAD^^^
Created autostash: 3ac3f4a
HEAD is now at f0c93f1 WIP
# abort the rebase...
$ git stash apply 3ac3f4a
On branch master
...