簡體   English   中英

恢復從未提交的已刪除目錄

[英]Restore deleted directory that was never committed

我不小心將本地目錄添加到本地Git存儲庫中。

git add dirName

它在該目錄中添加了大約二十個文件。 我不想添加他們。 以前從未添加過它們,我也沒有提交它們。 相反,我使用以下命令刪除了它們:

git rm -rf dirName

這成功地將它們從存儲庫中刪除,但是令我沮喪的是,該目錄似乎也已從磁盤中刪除。 它們不在我的回收站中。

有什么辦法找回那些文件嗎? 當然,我有一個備份,但是自上次備份以來,我對文件進行了很多更改。

我認為接受的答案並不完全正確。 確實git rm從索引中刪除了文件,但是它們通常在Git的對象數據庫中保留一段時間。 除非您強制執行垃圾收集,否則就是這樣。

您是否嘗試過運行git fsck來檢索一些懸垂的斑點懸垂的樹木

$ git init test
Initialized empty Git repository in D:/DOCUME~1/T012345/LOCALS~1/Temp/test/.git/

$ echo baz > foo/bar.txt

$ git add -Av
add 'foo/bar.txt'

$ git rm -rf *
rm 'foo/bar.txt'

$ git fsck
notice: HEAD points to an unborn branch (master)
Checking object directories: 100% (256/256), done.
notice: No default references
dangling blob 76018072e09c5d31c8c6e3113b8aa0fe625195ca

$ git cat-file -p 76018072e09c5d31c8c6e3113b8aa0fe625195ca
baz

不,不是因為

git rm -rf dirName

就好像

rm -rf dirName

這也是不可逆的,但它也會刪除暫存文件,因此您無法取回文件。 下次使用git rm --cached dirName只會將其從舞台中刪除,而不是從光盤中刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM