我搜索了其他问题但找不到适合我项目的解决方案。 有一个Magento项目,我想排除除此之外的所有内容:
/app/design/frontend/default/theme_name # and obviously all subfolders
/skin/frontend/default/theme_name # and all subfolders
我尝试了很多组合,但没有运气。目前我坚持使用这个.gitignore文件:
*
!/app/
!/app/*
app/*
!/app/design/
!/app/design/*
但它在设计文件夹下面递归不起作用。它只在我创建的设计文件夹中添加了一个测试文件。
答案 0 :(得分:5)
在这里做了一些研究。对我有用的是:
/*
!/directory
!/another
/another/*
!/another/directory
正确跟踪/directory
的子目录。奇怪的是,它不适用于第一行的/
或*
- 我不知道为什么。
答案 1 :(得分:5)
在这里查看我的答案:Can't understand how gitignore ignores the folders
引用:
以下讨论很有帮助: http://git.661346.n2.nabble.com/negated-list-in-gitignore-no-fun-td1675067.html ,尤其是来自Linus的以下内容:
这是设计的。你选择忽略这些目录;他们 匹配“*”自己。因此,'git add。'没有进入他们 寻找文件。
所以基本上,对于你必须进入的每个级别,unignore该文件夹, 并忽略该文件夹中的内容。
此外,您应该在子目录而不是根级别查看.gitignore
,因为如果您必须从根.gitignore
转到子目录级别,它会变得非常复杂,因为上面的解释,对于每个级别,您必须取消对文件夹的取消,然后忽略内容等等。
答案 2 :(得分:0)
/**
!/**/
!/app/design/frontend/default/theme_name/**
!/skin/frontend/default/theme_name/**
阐释:
我通常对子文件夹执行此操作,因此我不知道第一行是否有效。