我是git的新手,我犯了一個愚蠢的錯誤,我用「rm *」命令刪除了一些重要的文件。但是,我確實使用「git add」來添加這些文件,但不提交。刪除還沒有添加。那麼有什麼辦法可以恢復這些被刪除的文件。可以刪除在Git中添加但未提交的文件嗎?
任何建議或答案,將不勝感激。謝謝。
我是git的新手,我犯了一個愚蠢的錯誤,我用「rm *」命令刪除了一些重要的文件。但是,我確實使用「git add」來添加這些文件,但不提交。刪除還沒有添加。那麼有什麼辦法可以恢復這些被刪除的文件。可以刪除在Git中添加但未提交的文件嗎?
任何建議或答案,將不勝感激。謝謝。
由於文件已經在您的臨時區域(索引)中,只需使用git commit
提交它們而沒有任何參數。這將提交索引的內容,而不管工作樹的當前狀態如何。
然後,您可以使用git reset --hard
(如果您沒有對要保留的樹進行其他更改)或git checkout FILE1 FILE2...
將丟失的文件恢復到工作樹中。
您可以使用git fsck --lost-found
查找所有不再被引用的對象。您需要查看「blob」對象並查看它們中的任何一個是否與您刪除的文件相匹配。希望你沒有太多沒有理由的對象。
由於user4815162342指出,海報居然說缺失還沒有被添加,這意味着它們可以與git checkout
進行檢索,或者乾脆承諾,現在,以確保他們不要走。
我要離開我的答案,以防其他人想要git fsck --lost-found
上的信息,但應該接受user4815162342的答案。
嗨,謝謝你的迴應。我跑的命令,看見晃來晃去斑點像這樣的列表,然後我怎麼被刪除的文件回來?晃來晃去的blob 029530a4ebc7dec791a58cb022e18d0d87c8fe04 晃來晃去的blob 0c871fff49c4a05ff4a49b6a910f3bc4b688e338 晃來晃去的blob 0c08f1e149bfa9e84e9e30867c931423267b91c7 – user1672893
'混帳的fsck --lost-found'寫入所有懸掛對象到'.git/lost-found/commit /'或'.git/lost-found/other /'文件夾中。查看'other'文件夾並嘗試找到那些包含你刪除內容的文件。名稱將是SHA1哈希值,但內容將是實際文件。 –
你也可以通過'git cat-file -p SHA1'打印單個物體。 –
哦,我甚至沒有注意到海報上說「刪除沒有添加」。 –
非常感謝,它的工作。 – user1672893