2016-11-17 329 views
5

我一直在使用PhpStorm,并且最近隐藏了一些我的更改。在此之后的某个时候,我的个人电脑配置文件变得腐败,不得不重建。现在,我有一个新的PC配置文件Git Stashes存储在哪里?

,PhpStorm没有显示我的藏匿变化。

有没有什么办法可以让他们回来?

+2

你看过文档吗?藏在本地保存在'refs/stash'中。你有没有见过别人藏在你的电脑上?我猜不会。你有没有试过推动一个藏东西?这是不可能的。当您的本地存储库克隆消失后,您的存储空间不见了。 – DanFromGermany

+1

就是这样。我现在有文件。谢谢 – Typhoon101

回答

8

从文档中,最新的一个存储在./.git/refs/stash中,而较旧的存储在refreflog中。

顺便说一下,我发现保持常规使用git存储是一种糟糕的做法。通常,更喜欢功能分支上的许多小提交。这种方式你很少必须藏匿,当你这样做时,它很少存储。我通常只会在需要接触几分钟的时候才隐藏,然后在完成某些事情后再应用。

https://git-scm.com/docs/git-stash

1

全部都存储在.git/refs/stashgit stash无限期地保存存储,并且所有这些都通过git stash list列出。

请注意,删除或清除存储会将其从存储列表中删除,但您仍可能有未被删除的节点,并且存在正确的数据。作为两个提交树木

3

通过“GIT中藏匿”(即,当前版本的工作树的和的.git /索引的内容)藏匿的实际数据被存储。

一次提交树包含工作树的当前状态的快照。这里有一些棘手的问题,见下文。

其他提交树,我被告知,用于存储.git/index的内容在存储时的快照。我还没有深入地研究过这个问题,以了解它是如何被翻译成另一个的。

.git/refs/stash包含存储创建的提交树的哈希值。

.git/logs/refs/stash包含关于在.git/refs/stash之前存储的关于存储的类似reflog的块的元数据。

.git/index保存一个条目列表,其中一个用于工作树中的每个文件。这些条目包含完整路径和文件名,以及关于文件的缓存元数据,包括文件系统元数据和与git相关的元数据。

“git add”都将文件的副本添加到对象存储中,并在.git/index中为该文件设置分段标志。

对于“git stash”来创建一个提交树,已经被更改(编辑)但尚未使用“git add”登录的文件必须被添加到对象存储中。 “git stash”通过构建临时索引文件来完成此操作。