[英]ignore gitignore files in subdirectories
这是我的“root”.gitignore的内容
# exclude everything ...
*
# ...except
!/.gitignore
!*/
!/modules/wp-azth/**
问题是,在modules文件夹下,我有很多带有.gitignore文件的第三方模块。
使用上面的规则,所有第三方模块文件夹都被忽略,但他们的.gitignore文件不是(我当然不需要它)
有没有办法忽略忽略子文件夹中的.gitignore文件? 也许.git / config可以用于此吗?
(我认为git的一个不好的行为即使被忽略也会考虑它们)
更新 :似乎缺少git,它允许忽略文件夹“任意”不忽略自己在一个被忽略的子目录中放置(由任何人)的gitignore文件中的.gitignore规则。 忽略的文件夹通常可能包含动态,临时或第三方(缓存,临时,插件等)的文件...因此git允许仅使用简单的!.gitignore作为子目录中的规则来创建不需要的行为。
* .gitignore将工作,但git仍将跟踪它已经跟踪的.gitignore文件
运行的两个命令之间唯一不同的是我将*.gitignore
(通过您在中间看到的命令)添加到我的根级别.gitignore
文件。
可选前缀“!” 否定了这种模式; 之前模式排除的任何匹配文件将再次包含在内。
来自https://git-scm.com/docs/gitignore
这意味着中级.gitignore文件可能包含!*。gitignore,这可能会搞砸更高级别的声明。
问题是/modules
目录中的.gitignore
文件:
git check-ignore -v -n /modules/TC-JSON-API/storage/app/.gitignore
返回: /modules/TC-JSON-API/storage/app/.gitignore:2:!.gitignore /modules/TC-JSON-API/storage/app/.gitignore
:2:!. /modules/TC-JSON-API/storage/app/.gitignore:2:!.gitignore /modules/TC-JSON-API/storage/app/.gitignore
解决方案就是将/modules/*
添加到我的.gitignore
:
# exclude everything ...
*
# ...except
!/.gitignore
!*/
!/modules/wp-azth/**
成为
# exclude everything ...
*
modules/*
# ...except
!/.gitignore
!*/
!/modules/wp-azth/**
我不明白为什么git需要这种“规范”...没有这个规则只有.gitignore文件被忽略的文件夹在commit中被处理/列出。 但是现在它有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.