繁体   English   中英

忽略子目录中的gitignore文件

[英]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作为子目录中的规则来创建不需要的行为。

git gui截图

* .gitignore将工作,但git仍将跟踪它已经跟踪的.gitignore文件


运行的两个命令之间唯一不同的是我将*.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.

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