赞
踩
在使用 GIT 管理代码的时候,项目中总是会有一些文件我们不需要加入到 GIT 仓库中进行保管, 我们也不希望在工作目录列表中看到它们,比如说一些一些编译的中间文件,常用的源外编译的 build 文件夹等等。为了过滤这些文件,我们可以创建一个名为 .gitignore
的文件,在其中列出需要过滤文件的模式,其遵循 glob 文件匹配模式。
文件 .gitignore
的格式如下:
/
)说明要忽略的是目录。!
)取反。glob 匹配规则:
匹配符 | 说明 |
---|---|
* | 匹配文件路径中的0个或多个字符,但不会匹配路径分隔符,除非路径分隔符出现在末尾 |
** | 匹配路径中的0个或多个目录及其子目录,需要单独出现,即它左右不能有其他东西了。如果出现在末尾,也能匹配文件。 |
? | 匹配文件路径中的一个字符(不会匹配路径分隔符) |
[...] | 匹配方括号中出现的字符中的任意一个,当方括号中第一个字符为^或!时,则表示不匹配方括号中出现的其他字符中的任意一个 |
!(pattern|pattern|pattern) | 匹配任何与括号中给定的任一模式都不匹配的 |
?(pattern|pattern|pattern) | 匹配括号中给定的任一模式0次或1次 |
+(pattern|pattern|pattern) | 匹配括号中给定的任一模式至少1次 |
@(pattern|pattern|pattern) | 匹配括号中给定的任一模式1次 |
*(pattern|pattern|pattern) | 匹配括号中给定的任一模式0次或多次 |
举例:
# 此为注释 – 将被 Git 忽略
# 忽略所有 .a 结尾和 .b 结尾的文件
*.[ab]
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略文件名为 build 的文件,和以 build 为名的目录
build
# 忽略 build/ 目录下的所有文件,但如果当前目录有文件名为 build,该文件不会被忽略
build/
# 会忽略 doc/ 目录下以 .txt 结尾的文件,但不会忽略 doc/subdir/ 目录下以 .txt 结尾的文件
doc/*.txt
参考文献:《Pro Git》
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。