我搜索了其他问题,但无法为我的项目找到有效的解决方案。有一个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/*
但它在设计文件夹下面递归不起作用。它只在我创建的设计文件夹中添加了一个测试文件。
看看我的答案: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。'没有下降到他们寻找文件。
所以基本上,对于你必须进入的每个级别,取消该文件夹的内容,并忽略该文件夹中的内容。
此外,你应该看看.gitignore
在子目录而不是在根级别,因为它变得非常复杂如果你必须从根.gitignore
转到子目录级别,因为上面的解释,对于每个级别,你必须unignore文件夹然后忽略内容等。
在这里做了一些研究。对我有用的是:
/*
!/directory
!/another
/another/*
!/another/directory
随着/directory
的这个子目录被正确跟踪。奇怪的是,它不适用于第一行只有/
或只有*
- 我不知道为什么。
/**
!/**/
!/app/design/frontend/default/theme_name/**
!/skin/frontend/default/theme_name/**
阐释:
我通常这样做到子文件夹,所以我不知道第一行是否有效。