git-recover
使您可以恢復您從工作目錄中意外刪除的一些文件。它可以幫助您找到存儲庫對像數據庫中存在的文件 - 因為您可以添加git add
- 但從未投入。
使用git-recover
的最簡單方法是處於交互式模式 - 只需運行git-recover -i
即可,它將向您顯示您可以恢復並提示您採取行動的所有文件。
在沒有任何參數的情況下運行git-recover
將列出最近通過其ID孤立的所有文件(git“ blob”)。 (他們的文件名不知道。)
您可以通過運行git show <objectid>
檢查這些斑點。如果您發現要恢復的一個,則可以將ID作為git-recover
的參數提供。您可以指定--filename
選項以將文件寫出並應用存儲庫中設置的任何過濾器。例如:
git-recover 38762cf7f55934b34d179ae6a4c80cadccbb7f0a --filename shattered.pdf
您還可以指定多個要恢復的文件,每個文件都帶有一個可選的輸出文件名:
git-recover 38762c --filename one.txt cafebae --filename bae.txt
如果要恢復存儲庫中的所有孤兒斑點,請運行git-recover --all
。這將將所有孤立的文件寫入當前的工作目錄,因此最好在您的工作目錄下方的臨時目錄中運行此文件。例如:
mkdir _tmp && cd _tmp && git-recover --all
默認情況下, git-recover
將自己限制在最近創建的孤兒斑點上。如果您想查看存儲庫中創建的所有孤兒(但尚未收集垃圾),則可以運行:
git-recover --full
git-recover [-a] [-i] [--full] [<id> [-f <filename>] ...]
-a
, --all
將所有孤兒斑點寫入當前的工作目錄。每個文件將使用其40個字符對象ID命名。
-i
, --interactive
顯示有關每個孤兒斑點的信息,並提示將其恢復。
--full
列出或恢復所有孤兒斑點,甚至是包裝文件中的斑點。默認情況下, git-recover
只會查看鬆散的對象文件,該文件將其限制在最近創建的文件中。檢查包裝文件可能很慢,尤其是在大型存儲庫中。
<id>
對象ID(或其縮寫)要恢復。該文件將寫入當前工作目錄,並使用其40個字符對象ID命名,除非指定了-f
選項。
-f <filename>
, --filename <filename>
當在對象ID之後指定時,書面文件將使用此文件名。另外,任何過濾器(例如:CRLF轉換或GIT-LFS)都將根據gitattributes
配置運行。
要報告錯誤,請獲得幫助或為該程序提供錯誤修復,請在GitHub上查看。
版權(c)愛德華·湯姆森(Edward Thomson)。版權所有。
Git-Recover是開源軟件,可根據MIT許可證獲得。請參閱隨附的LICENSE
文件以獲取更多信息。