我一直在使用PhpStorm,最近隐藏了一大堆我的变化。在那之后的某个时刻,我的PC个人资料变得腐败,不得不重建。
现在我有一个新的PC配置文件,PhpStorm没有显示我的存储变化。
有什么方法可以让他们回来吗?
答案 0 :(得分:12)
从文档中,最新版本存储在./.git/refs/stash
中,而较旧版本则存储在reflog
的{{1}}中。
顺便说一句,我发现保持定期使用git stash是一种不好的做法。通常,在功能分支上更喜欢许多小提交。这种方式你很少需要藏匿,当你这样做的时候很少存储。我通常只在我需要触摸几分钟的东西时藏匿,然后在我看完某些东西时应用。
答案 1 :(得分:4)
" git stash"存储的实际数据(即当前版本的工作树和.git / index的内容)存储为两个提交树。
一个提交树包含工作树当前状态的快照。这里有一些棘手的问题,见下文。
我已经告诉过,另一个提交树用于存储存储时.git / index内容的快照。我还没有深入研究过这个问题,以便了解这个问题是如何被翻译成另一个的。
.git / refs / stash包含存储创建的提交树的哈希值。
.git / logs / refs / stash包含一个类似于reflog的元数据,这些元数据关于.git / refs / stash中的存储之前的存储。
.git / index包含一个条目列表,每个条目对应于工作树中的每个文件。这些条目包含完整路径和文件名以及有关文件的缓存元数据,包括文件系统元数据和与git相关的元数据。
" git add"两者都将文件的副本添加到对象库,并在.git / index中设置该文件的登台标志。
对于" git stash"创建一个提交树,已经更改(编辑)但尚未暂存的文件" git add"必须添加到对象库。 " git stash"这是通过构建临时索引文件来实现的。
答案 2 :(得分:2)
全部存储在.git/refs/stash
中。 git stash
无限期地保存了藏匿处,并且所有这些都被git stash list
列出。
请注意,删除或清除存储会将其从存储列表中删除,但您可能仍然拥有包含正确数据的未传播节点。