Git忽略除子文件夹以外的所有文件
我搜索了其他问题,但找不到适合我的项目的有效解决方案。 有一个Magento项目,我想排除除此之外的所有内容:Git忽略除子文件夹以外的所有文件,git,magento,gitignore,Git,Magento,Gitignore,我搜索了其他问题,但找不到适合我的项目的有效解决方案。 有一个Magento项目,我想排除除此之外的所有内容: /app/design/frontend/default/theme_name # and obviously all subfolders /skin/frontend/default/theme_name # and all subfolders 我试过很多组合,但运气不好。目前我一直使用这个.gitignore文件: * !/app/ !/app/* app/* !/app/
/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/*
但它在设计文件夹下不能递归工作。它只在我创建的设计文件夹中添加了一个测试文件。在这里做了一些研究。对我起作用的是:
/*
!/directory
!/another
/another/*
!/another/directory
通过此操作,正确跟踪了/目录
的子目录。奇怪的是,它既不适用于第一行的/
也不适用于第一行的*
——我不知道为什么。请看我的答案:
引述:
以下讨论很有帮助:
,特别是来自Linus的以下内容:
这是故意的。您选择忽略这些目录;他们
匹配“*”本身。因此,“吉特补充道,”并没有陷入其中
正在查找文件。
所以基本上,对于你必须进入的每一个关卡,取消那个文件夹,
并忽略该文件夹中的内容
此外,您还应该考虑在子目录而不是根目录下使用.gitignore
,因为如果您必须从根目录.gitignore
进入子目录级,那么这会变得非常复杂,因为上面的解释,即对于每个级别,您必须取消对文件夹的命名,然后忽略其中的内容等等
/**
!/**/
!/app/design/frontend/default/theme_name/**
!/skin/frontend/default/theme_name/**
解释:
我通常对子文件夹执行此操作,因此我不知道第一行是否有效。不幸的是
/另一个/directory
不适用于我。我应该忽略每个级别的/unignore。我想知道它是否取决于git版本。我使用的是git版本1.7.4.1
我有完全相同的$git--version
git版本1.7.4.1
它只是忽略了/另一个/目录
。正如manojlds所指出的,is被忽略,因为它的父级被忽略。设计中编程的错误:o@Briad戈登-那是你的莱纳斯:D