【问题标题】:Does each branch have a separate stash?每个分支都有单独的存储吗?
【发布时间】:2013-10-29 05:04:52
【问题描述】:

如果我在分支中,例如test 并且有一些工作。如果我执行git stash 并切换到master 分支,如果我执行git stash clear 是否会丢失我在test 中保存的工作?还是每个分支都有单独的存储堆栈?

【问题讨论】:

    标签: git git-stash


    【解决方案1】:

    没有。 Stashes 实际上是 reference 的 reflog(有点像“隐藏分支”,如果你愿意的话):refs/stash

    所以,

    • git reflog refs/stash

      e41a1b8 refs/stash@{0}: WIP on master: 42092ec PoC
      

      大致相当于

      git stash list

      stash@{0}: WIP on master: 42092ec PoC
      

    所以只有一个“分支”包含所有存储。

    【讨论】:

    • 正如您在中间的“分支”周围加上引号所建议的那样,refs/stash 本身并不是一个真正的分支。 (它 is 是一个引用,就像分支和标签是引用一样;但注释也是如此。)git stash branch ... 将允许您将任何给定的存储 into 更改为一个分支,尽管(通过检查父级,然后创建新分支并应用存储)。因此,如果你有一个 stash 并决定它应该成为一个分支,那很容易做到。
    • @torek 感谢您的添加。你会相信我总是忽略git stash branch :) 或者我对 git 的使用早于那个子命令(?)。无论如何,很高兴知道这一点。
    猜你喜欢
    • 2011-12-24
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多