[英]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.