标签:
参考链接:
https://ruby-china.org/topics/23561
http://stackoverflow.com/questions/5533050/gitignore-exclude-folder-but-include-specific-subfolder#
一.后置线
static/
和 static
是不一样的,前者只匹配目录 static
,而后者则可以匹配同名的目录、文件名、符号链接等等……;如果 static/
是你声名的规则,那么其下所有的子目录及文件都匹配,除非你之后用 !
排除;
二.前置线
.gitignore 是默认以相对路径为基准的,子目录下的 .gitignore 优先应用自己的规则然后再递归向上一直找到 git 的根(也就是 .git
存在的那个目录)。因此在路径模式前追加 /
是不推荐的,因为:
多数情况下我们只使用一个 .gitignore,即工作树根路径下的 .gitignore。此时相对于它自身,/
就代表着当前工作路径,没有必要加它;
如果我们添加了子目录下的 .gitignore,那我们的本意也是要去匹配其下的路径,若是加了前置的 /
反而让人摸不着头脑;
不过有一种情况下 /
是需要的,比如说你项目下有很多 index.html
文件,你只想忽略工作树根路径下的那一个,其他则不管;这样的话直接写 index.html
是不行的,因为 git 会把它当作一个 glob pattern 去匹配所有同名文件(哪怕不同级)。此时就需要追加一个前置斜线:/index.html
,意思是:我只要屏蔽相对于 /
下的 index.html
。
三.exclude
dist/* !dist/style/ dist/style/* !dist/**/*.htm
想要忽略dist目录下所有非htm文件和dist style子目录下所有的非htm文件
注意:dist/* 中/*很重要,如果没有将直接忽略dist/ 下所有东西,加了exclude也没有用。
标签:
原文地址:http://www.cnblogs.com/fanyegong/p/5794626.html