如果我在一个分支机构,例如test
并有一些工作。如果我做 git stash
并切换到 master
分支,如果我做 git stash clear
我会丢失我在 test
中保存的工作吗? ?或者每个分支都有一个单独的存储堆栈?
最佳答案
没有。 Stashes 实际上是 reference 的 reflog(如果你愿意的话,有点像“stash 分支”):refs/stash
所以,
git reflog refs/stash
e41a1b8 refs/stash@{0}: WIP on master: 42092ec PoC
大致相当于
git 存储列表
stash@{0}: WIP on master: 42092ec PoC
所以只有一个“分支”包含所有存储。
这个答案中的机制可能会变得更加清晰:Is it possible to push a git stash to a remote repository?
您可以“推断”存储适合的分支,例如,
git branch -a --contains stash@{0}^
(问:哪些分支包含此存储的父版本?)
关于git - 每个分支都有单独的 stash 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19482095/