恢復被丟棄的藏匿處

如果你剛剛彈出它並且終端仍然開啟,你仍然會在螢幕上顯示 git stash pop 列印的雜湊值:

$ git stash pop
[...]
Dropped refs/stash@{0} (2ca03e22256be97f9e40f08e6d6773c7d41dbfd1)

(注意 git stash drop 也會生成相同的行。)

否則,你可以使用以下方法找到它:

git fsck --no-reflog | awk '/dangling commit/ {print $3}'

這將向你顯示提交圖提示中的所有提交,這些提交不再從任何分支或標記引用 - 每個丟失的提交(包括你建立的每個儲存提交)都將位於該圖中的某個位置。

找到所需儲存提交的最簡單方法可能是將該列表傳遞給 gitk

gitk --all $( git fsck --no-reflog | awk '/dangling commit/ {print $3}' )

這將啟動一個儲存庫瀏覽器,顯示儲存庫中的每個提交,無論它是否可訪問。

如果你喜歡在一個單獨的 GUI 應用程式上使用控制檯上的漂亮圖形,你可以用 git log --graph --oneline --decorate 替換 gitk

要查詢儲存提交,請查詢此表單的提交訊息:

somebranch 上的 WIP : commithash 一些舊的提交訊息

一旦知道了所需提交的雜湊值,就可以將其應用為儲存:

git stash apply $stash_hash

或者你可以使用 gitk 中的上下文選單為你感興趣的任何無法訪問的提交建立分支。之後,你可以使用所有常規工具隨意執行任何操作。當你完成後,再次吹走那些樹枝。