我不小心将一个本地目录添加到我当地的Git仓库.
git add dirName
Run Code Online (Sandbox Code Playgroud)
它在该目录中添加了20个左右的文件.我不希望他们添加.以前从未添加过它们,我没有提交它们.相反,我删除它们:
git rm -rf dirName
Run Code Online (Sandbox Code Playgroud)
这成功地从repo中删除了它们,但令我沮丧的是,该目录似乎也已从磁盘中删除.它们不在我的回收站中.
有没有办法让这些文件恢复?当然,我有备份,但自上次备份以来,我对文件做了很多更改.
我不认为接受的答案是完全准确的.确实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
Run Code Online (Sandbox Code Playgroud)