我一直在使用PhpStorm,最近隐藏了大量的更改。在那之后的某个时候,我的PC配置文件变得损坏,不得不重建。现在我有一个新的PC配置文件,PhpStorm不显示我的隐藏更改。有什么办法能让我把它们拿回来吗?
rqmkfv5c1#
根据文档,最新的存储在./.git/refs/stash中,而旧的存储在ref的reflog中。顺便说一句,我发现经常使用git stash是一种不好的做法。一般来说,在一个特性分支上更喜欢许多小的提交。这样你就很少需要藏起来,当你这样做的时候,它也很少被储存起来。我通常只在需要触摸东西几分钟的时候才把它藏起来,然后在我看完东西的时候再涂。https://git-scm.com/docs/git-stash
./.git/refs/stash
ref
reflog
atmip9wb2#
由“git stash”(即工作树的当前版本和.git/index的内容)被存储为两个提交树。一个提交树包含工作树当前状态的快照。这里有一些棘手的问题,见下文。我被告知,另一个提交树用于存储.git/index在存储时的内容快照。我还没有足够深入地研究这一点,以了解一个是如何翻译成另一个。.git/refs/stash包含stash创建的提交树的哈希值。.git/logs/refs/stash包含一个类似于reflog的元数据块,它是关于.git/refs/stash之前的stash的。.git/index保存工作树中每个文件的条目列表。这些条目包含完整的路径和文件名,以及关于文件的缓存元数据,包括文件系统元数据和git相关元数据。“git add“将文件的副本添加到对象存储中,并在.git/index中为该文件设置暂存标志。要让“git stash“创建提交树,必须将已更改(编辑)但尚未使用“git add“暂存的文件添加到对象存储中。“git stash“通过构建一个临时索引文件来实现这一点。
git stash
.git/index
.git/refs/stash
.git/logs/refs/stash
git add
mccptt673#
所有这些都存储在.git/refs/stash中。git stash无限期地保存stashes,所有这些都由git stash list列出。请注意,删除或清除stash将从stash列表中删除它,但您可能仍然有未修剪的节点,其中包含正确的数据。
git stash list
3条答案
按热度按时间rqmkfv5c1#
根据文档,最新的存储在
./.git/refs/stash
中,而旧的存储在ref
的reflog
中。顺便说一句,我发现经常使用git stash是一种不好的做法。一般来说,在一个特性分支上更喜欢许多小的提交。这样你就很少需要藏起来,当你这样做的时候,它也很少被储存起来。我通常只在需要触摸东西几分钟的时候才把它藏起来,然后在我看完东西的时候再涂。
https://git-scm.com/docs/git-stash
atmip9wb2#
由“
git stash
”(即工作树的当前版本和.git/index
的内容)被存储为两个提交树。一个提交树包含工作树当前状态的快照。这里有一些棘手的问题,见下文。
我被告知,另一个提交树用于存储
.git/index
在存储时的内容快照。我还没有足够深入地研究这一点,以了解一个是如何翻译成另一个。.git/refs/stash
包含stash创建的提交树的哈希值。.git/logs/refs/stash
包含一个类似于reflog的元数据块,它是关于.git/refs/stash
之前的stash的。.git/index
保存工作树中每个文件的条目列表。这些条目包含完整的路径和文件名,以及关于文件的缓存元数据,包括文件系统元数据和git相关元数据。“
git add
“将文件的副本添加到对象存储中,并在.git/index中为该文件设置暂存标志。要让“
git stash
“创建提交树,必须将已更改(编辑)但尚未使用“git add
“暂存的文件添加到对象存储中。“git stash
“通过构建一个临时索引文件来实现这一点。mccptt673#
所有这些都存储在
.git/refs/stash
中。git stash
无限期地保存stashes,所有这些都由git stash list
列出。请注意,删除或清除stash将从stash列表中删除它,但您可能仍然有未修剪的节点,其中包含正确的数据。