拉出时删除了忽略的GIT文件

时间:2012-05-21 23:35:22

标签: git

我有一个git repo,其目录中包含用户上传的文件。该目录还包含.gitignore */

我从远程仓库进行了拉取,目录中的所有文件都被删除,没有任何警告。

可能导致这种情况发生的原因是什么?

我所做的所有研究都告诉我,删除所有这些文件并且不可能偶然发生是故意的。是真的还是有另一个git命令会默默地删除所有这些文件?

1 个答案:

答案 0 :(得分:2)

.gitignore是一种方便,可以防止噪音出现在状态报告中,或者由git add .等自动添加,这就是全部。您可以显式添加一个被忽略的文件,然后git将关心该特定文件,并且在.gitignore中命名文件不会使git停止关注已经跟踪的文件。

如果git pull已删除文件,则会跟踪和删除这些文件。您可以通过git checkout "@{may 21 17:30 pdt}"或某些此类参考来获取它们,以用于您的签出提交。

远程可能有人添加了文件,没有提交更改,并强制合并,使孤儿更难找到,但除非有人明确擦除git的内存git fsck --lost-found就像旧的取消删除程序,它会丢弃你所关心的所有内容的副本,然后丢弃到.git/lost-found

git ls-files -ic --exclude-standard将显示与忽略规范匹配的跟踪文件,即某人可能错误添加或忽略的文件。来想一想,这可能不是预先提交钩子的坏线,

git ls-files -ic --exclude-standard \
| sed '${p;s,.*,*** '"$0"' refusing commit with tracked files marked as ignored in the standard excludes lists,;q1}'