繁体   English   中英

git rm -r删除了“忽略的”文件。 如何使用git找回它们?

[英]git rm -r removed “ignored” files. how can I get them back using git?

编辑:我能够从废纸recover中恢复文件,所以我不需要解决方案,但是我有兴趣知道如何使用git恢复(因为它创建了问题),以及为什么任何git操作都会影响“忽略” ”文件。

我有一个.gitignore条目,例如:

reference/ 

这是一个文件夹,在该文件夹中我的项目有许多大型参考数据文件。

我做了一个

git rm -r 

这些文件被删除

我没有意识到它们已经消失了,并且想把所有东西都找回来,所以使用github客户端“放弃所有更改...”。

现在一切都恢复了,除了那些被“忽略”的文件。

我的操作系统是OSX High Sierra。

我该如何找回他们?

$git rm --help

名称
git-rm-从工作树和索引中删除文件

概要
git rm [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [-] ...

描述
从索引或工作树和索引中删除文件。 git rm不会仅从您的工作目录中删除文件。 (没有选择仅从工作树中删除文件,而是将其保留在索引中的选项;如果要这样做,请使用/ bin / rm。)要删除的文件必须与分支的尖端相同,尽管可以使用-f选项覆盖默认行为,但无法在索引中暂存对其内容的更新。 给定--cached时,暂存的内容必须与分支的尖端或磁盘上的文件匹配,从而允许仅从索引中删除文件。

因此,当您使用git rm删除文件时,文件已经在索引中或历史记录中。 否则git不会删除它们。

您不能责怪git做您说的话。


回答您的问题:

  • 如果文件中有蜜蜂在索引中(并且尚未提交),那么您会迷路。 git无济于事。

  • 如果文件已提交,则可以从上一次提交中检出它们:

     git checkout HEAD^ path/to/deleted/file 

    这将自动将它们再次添加到索引中,因此您仅需使用

     git rm --cached path/to/deleted/file 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM