2016-11-17 331 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」通過構建臨時索引文件來完成此操作。