2016-05-23 40 views
1

這裏是後面的故事:是否有可能是我申請的變化

上週五,在做一些/some-branch下班後,我做了一個git stash save,簽出/another-branch,然後git stash pop一切去地獄。嘗試恢復我所隱藏的更改失敗後,我關閉了終端。現在我正在嘗試再次這樣做。

從我所瞭解的情況來看,如果他們沒有被垃圾收集,那麼這些修改對應於我運行git fsck --no-reflog時看到的dangling blob的哈希值。那麼我怎麼才能弄清楚上週五與哪一個相對應,以及如何讓它恢復生機。或者我不能,我已經失去了所有這些變化? :(

+1

當你說「那麼一個混帳藏匿流行和一切都到地獄」你能更具體地說明發生了什麼嗎?你有衝突嗎? – Agry

回答

0

你有沒有來自/some-branch/another-branch試圖git status以確保變化是不是在你的工作目錄?

如果證明徒勞的,試着從兩個分支以及git fsck --unreachable。這些變化能夠消失,但是隻有當你已經積攢更改之前做了一些像resetpull

0

你實際上是在尋找一個晃來晃去提交,而不是一個晃來晃去的斑點,如果你已經運行git fsck,有一個(短小)一組懸掛提交,您可以使用檢查每個提交,看看有沒有這些提交看起來就像你藏起來的。如果你有很多提交,那可能是很多工作。

另一種方法是,如果您仍有任何儲存空間,請運行git reflog refs/stash以查看您創建的儲存的歷史記錄。不幸的是,一旦你彈出最後一個藏品,這些日誌就會被刪除,所以你可能沒有它。

使用上述方法之一找到正確的提交ID後,可以使用git checkout <commit id>git branch newbranch <commit id>直接簽出提交,或者創建指向該提交的新分支。

+0

是否以任何方式訂購懸掛提交?我有一個大集... –