参考文章:http://www.cnblogs.com/eddy-he/archive/2012/03/08/git_ignore_file.html
ignore files 三种方法
1.
1.1全局
在仓库目录下新建一个名为.gitignore的文件
.gitignore文件对其所在的目录及所在目录的全部子目录均有效。将.gitignore文件提交添加到仓库,其他开发者更新后,也都会生效,所有人员共用这套规则。
1.2局部
如果是只想对某个文件建规则,就只在此文件下创建.gitignore的,将.gitignore文件提交添加到仓库,其他开发者更新后,也都会生效,所有人员共用这套规则。
不管是全局还是局部,如果是只想自己用这套规则,那么可以在.gitignore里添加.gitignore,是可以忽略本身这个文件的。
2.
通过配置.git/info/exclude文件来忽略文件。
这种方式对仓库全局有效,但只能对自己本地仓库有作用。
3.
通过.git/config配置文件的core. Excludesfile选项,指定一个忽略规则(完整路径)此方式的作用域也是全局。
ps:用这种文件的话在mac上,.DS_Store文件会被加到进去,所以如果用此种方式,应该把.DS_Store添加到忽略规则里。
4.
语法
.gitignore 的语法规范如下:
·所有空行或者以注释符号 # 开头的行都会被 Git 忽略;
·可以使用标准的 glob 模式匹配。 * 匹配模式最后跟反斜杠(/
)说明要忽略的是目录。 * 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!
)取反。
glob 模式匹配:
·星号(*
)匹配零个或多个任意字符;
·[abc]
匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);
·问号(?
)只匹配一个任意字符;
·[0-9a-zA-Z]
在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9a-zA-Z]
表示匹配所有 0 到 9 的数字和所有字母);
·\ 转义字符。
注:理论上来说,在要忽略的格式文件后面添加注释是允许的,但经过我的验证,结果发现这样子操作并不能达到预期的效果。
5. 例子
一个 .gitignore 例子。
# 此为注释 – 将被 Git 忽略
# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt