我有有一个网站/sites/default/files/
目录,用户的内容通常被保持。 盘算,我不需要被跟踪这个东西,我添加/网站/默认/文件/我的.gitignore文件。
后来我发现,我也想保留一些主要永久上传在该目录中。 现在,它更有意义,以跟踪/网站/默认/文件的一切/并排除不良的子目录,而不是周围做它的其他方式。
问题是混帐不会停止忽略该目录。 我已删除了的.gitignore指定该目录的线条,它不会跟踪它。 我不得不使用选项git add /sites/default/files/ -f
强制git的跟踪目录,但我没有做过,似乎凌乱。
如果的.gitignore不再指定目录忽略,我为什么非要逼的Git开始跟踪这些文件?
你知道该怎么做了。 是的, git add -f
是这样的。
如果你问为什么?这是因为git的设置assume-unchanged
位内部。 该位使混帐认为文件不会被修改,所以git add
不会增加它。
如果你想惹的实现细节,你可以使用git update-index --no-assume-unchanged <file>
命令。
我不认为J-16是正确的。 从http://www.kernel.org/pub/software/scm/git/docs/git-add.html :
git的add命令默认情况下不会加忽略的文件。 如果在命令行上明确指定的任何忽略的文件,git的添加将失败,并忽略的文件列表。 通过目录递归或文件名达到或忽略的文件通过通配符的Git(报价前壳的水珠)将被忽略执行。 git的add命令可以用来添加使用-f(强制)选项忽略的文件。
git add -f
似乎只能是添加, 它在忽略文件中存在某个文件。
也许,这/网站或/网站另一个的.gitignore文件/默认这也告诉混帐忽略这个目录,也可能是在git的/信息被设置/排除?
对于后人:回答我的问题“只是仔细看”。
@twalberg指出,正确的,有可能是我在.gitignore文件以俯瞰的规则。 在应用了的.gitignore规则级联的方式可以很容易地更广泛地比预期排除文件。
据我所知道的,假设我是在对git的工作原理是正确的。 同样,我的情况似乎并不支持(或否定)@什么作用J-16 SDiZ的评论assume-unchanged
位可以玩。
我们在Drupal的站点目录中有一个非常类似的问题。 问题是,Drupal的分布有较高水平的Drupal目录的.gitignore文件,该文件在Drupal /网站/文件匹配任何东西/ *