Git 每个分支机构都有单独的储藏室吗?
如果我在一个分支机构,例如Git 每个分支机构都有单独的储藏室吗?,git,git-stash,Git,Git Stash,如果我在一个分支机构,例如测试,并且有一些工作。如果我执行git stash并切换到master分支,如果执行git stash clear操作,我是否会丢失在测试中保存的工作?或者每个分支都有一个单独的隐藏堆栈吗?否。隐藏实际上是引用的反射(有点像“隐藏分支”,如果您愿意):refs/stash e41a1b8 refs/stash@{0}: WIP on master: 42092ec PoC 所以 git reflog refs/stash e41a1b8 refs/stash@{0}
测试
,并且有一些工作。如果我执行git stash
并切换到master
分支,如果执行git stash clear
操作,我是否会丢失在测试中保存的工作?或者每个分支都有一个单独的隐藏堆栈吗?否。隐藏实际上是引用的反射(有点像“隐藏分支”,如果您愿意):refs/stash
e41a1b8 refs/stash@{0}: WIP on master: 42092ec PoC
所以
git reflog refs/stash
e41a1b8 refs/stash@{0}: WIP on master: 42092ec PoC
大致相当于
git存储列表
stash@{0}: WIP on master: 42092ec PoC
因此,只有一个“分支”包含所有存储
- 在这个答案中,机制可能会变得更加清晰:
- 你可以通过这样做来“推断”藏在哪个分支上,例如
git branch -a --contains stash@{0}^
(询问:哪些分支包含此存储的父修订?)
正如你建议的,中间的“分支”的引号,<代码> REFS/Stase本身并不是一个分支。(它是一个引用,就像分支和标记是引用一样;但注释也是如此。)git stash branch…
将允许您将任何给定的隐藏更改为分支(通过签出父级,然后创建新分支并应用隐藏)。所以,如果你有一个藏品,并决定它应该成为一个分支,这很容易做到。@torek谢谢你的添加。你会相信我总是忽略了git隐藏分支吗?或者我对git的使用早于子命令(?)。无论如何,我很高兴知道这一点。