Git忽略除子文件夹以外的所有内容

s3v*_*v3n 7 git magento gitignore

我搜索了其他问题,但无法为我的项目找到有效的解决方案.有一个Magento项目,我想排除除此之外的所有内容:

/app/design/frontend/default/theme_name # and obviously all subfolders
/skin/frontend/default/theme_name # and all subfolders
Run Code Online (Sandbox Code Playgroud)

我尝试了很多组合,但没有运气.目前我坚持使用这个.gitignore文件:

*
!/app/
!/app/*

app/*
!/app/design/
!/app/design/*
Run Code Online (Sandbox Code Playgroud)

但它在设计文件夹下面递归不起作用.它只在我创建的设计文件夹中添加了一个测试文件.

Paw*_*rok 5

在这里做了一些研究.对我有用的是:

/*
!/directory
!/another
/another/*
!/another/directory
Run Code Online (Sandbox Code Playgroud)

/directory正确跟踪此子目录.奇怪的是,它不能仅用于/或仅*在第一行 - 我不知道为什么.


man*_*lds 5

看看我的答案:无法理解gitignore如何忽略这些文件夹

引用:

以下讨论很有帮助:http: //git.661346.n2.nabble.com/negated-list-in-gitignore-no-fun-td1675067.html ,特别是来自Linus的以下内容:

这是设计的.你选择忽略这些目录; 他们自己匹配"*".因此,'git add.' 没有下降到他们寻找文件.

所以基本上,对于你必须进入的每个级别,取消该文件夹的内容,并忽略该文件夹中的内容.

此外,你应该看看.gitignore只在子目录而不是根目录,因为如果你必须从根目录转到子目录级别,.gitignore因为上面的解释,因此对于每个级别,你必须取消对文件夹和然后忽略内容等等.