恢復被丟棄的藏匿處
如果你剛剛彈出它並且終端仍然開啟,你仍然會在螢幕上顯示 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
中的上下文選單為你感興趣的任何無法訪問的提交建立分支。之後,你可以使用所有常規工具隨意執行任何操作。當你完成後,再次吹走那些樹枝。