`git rebase --autostash` 创建的临时存储条目在哪里?
Where is the temporary stash entry created by `git rebase --autostash`?
我习惯了运行git rebase --autostash
。由于多种原因(冲突、版本等),我可能会在 rebase 期间被打断。我希望在 git stash list
的输出中看到自动存储的内容。但事实并非如此。临时存储条目位于何处?怎么看?
在进行变基时,自动存储存储在:.git/rebase-merge/autostash
。
由于此文件存储在 .git/
下,并且是一个有效的参考文件,您可以使用 rebase-merge/autostash
作为指向自动存储的名称:
git log --oneline --graph rebase-merge/autostash
# you can also use it with 'git stash show' or 'git stash apply' :
git stash show rebase-merge/autostash
git stash apply rebase-merge/autostash
您也可以通过手动调用 git update-ref refs/stash
:
将其“插入”到常规存储中
git update-ref -m "autostash" refs/stash rebase-merge/autostash
注意 :在阅读您的问题之前,我还认为自动存储是常规存储,我只是通过检查 .git/rebase-merge/
的内容发现了上述技巧.
上面的 hack 目前有效(git 版本 2.31),我认为您不应该将它们视为坚如磐石、永远稳定的功能——例如 .git/rebase-merge/
目录不是文档的一部分。
显然,如果您从终端 运行 git rebase
,您还可以在命令的输出中看到自动存储的哈希值:
$ git rebase -i master
Created autostash: 2acfb51
...
我习惯了运行git rebase --autostash
。由于多种原因(冲突、版本等),我可能会在 rebase 期间被打断。我希望在 git stash list
的输出中看到自动存储的内容。但事实并非如此。临时存储条目位于何处?怎么看?
在进行变基时,自动存储存储在:.git/rebase-merge/autostash
。
由于此文件存储在 .git/
下,并且是一个有效的参考文件,您可以使用 rebase-merge/autostash
作为指向自动存储的名称:
git log --oneline --graph rebase-merge/autostash
# you can also use it with 'git stash show' or 'git stash apply' :
git stash show rebase-merge/autostash
git stash apply rebase-merge/autostash
您也可以通过手动调用 git update-ref refs/stash
:
git update-ref -m "autostash" refs/stash rebase-merge/autostash
注意 :在阅读您的问题之前,我还认为自动存储是常规存储,我只是通过检查 .git/rebase-merge/
的内容发现了上述技巧.
上面的 hack 目前有效(git 版本 2.31),我认为您不应该将它们视为坚如磐石、永远稳定的功能——例如 .git/rebase-merge/
目录不是文档的一部分。
显然,如果您从终端 运行 git rebase
,您还可以在命令的输出中看到自动存储的哈希值:
$ git rebase -i master
Created autostash: 2acfb51
...