我有以下目录结构:
project
modules
some-company-foo
different-company-bar
mycompany-a
mycompany-b
mycompany-c
除了那些以 mycompany
开头的文件外,我如何忽略模块中的所有文件?
与git ignore all except subfolder类似,但使用通配符。我不想在mycompany-...
中维护每个.gitignore
文件夹的列表。
根据其他答案,我尝试使用以下内容创建modules/.gitignore
:
/*
# Do not ignore mycompany modules
!/mycompany*
modules
根本没有提到project/.gitignore
。
但这不起作用。例如,
git add /Users/mike/Documents/project/modules/mycompany-faq/questions/somefile.md
失败:
The following paths are ignored by one of your .gitignore files:
modules/mycompany-faq/questions/somefile.md
Use -f if you really want to add them
如何忽略modules
中的所有文件,但以mycompany
开头的文件除外?
答案 0 :(得分:1)
@jonathanwakely添加你自己的答案,我会给你积分!
配置实际上是正确的 - 感谢@jonathanwakely's demo,它在一个新文件夹中工作。
问题是,在项目顶部之上的更高级.gitignore
文件忽略了modules
目录。
之前我曾查找~/Documents/.gitignore
和~/.gitignore
,但是还有另一个.gitignore
名称不同。我能够找到它:
> git check-ignore -v modules/mycompany-faq/questions/ssl-or-https.md
/Users/mike/.gitignore_global:28:modules modules/mycompany-foo/somefile.md
即,.gitignore_global
设置为忽略modules
目录。
答案 1 :(得分:-1)
如果是父目录,则无法重新包含文件 文件被排除在外。
所以你需要指定完整路径,比如
!/Users/mike/Documents/project/modules/mycompany*