.gitignore 用于在git操作中自动过滤(不跟踪)文件或目录,包括无需版本管理的目录或文件以及项目开发过程中系统或编译环境自动生成对项目本身无存储意义的文件。
配置语法(pattern规则)
- 以
/
开头表示根目录,防止递归 - 以
/
结尾表示指定目录 - 以
!
开头表示不过滤(跟踪)此项配置匹配到的文件或目录 - 以
#
开头表示注释,如需转义在前面加斜杠,/#
- 配置规则可以使用标准的
glob
模式匹配(glob模式是指shell所使用的简化了的正则表达式) *
通配符,多字符通配**
表示匹配任意中间目录如,a/**/z
表示可以匹配a/z
、a/s/z
或a/a/s/z
等?
通配符,单字符通配[]
可以匹配任何一个在方括号中的字符, 如*.[ac]
表示匹配任何以.a
或者.c
结尾的文件,如果[]
中有短划线-
分割两个字符,则表示所有两个字符范围内的都可以匹配如[0-9]
.gitignore 案例解释
# untrack .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
#only ignore the TODO file in the current directory, not subdir /TODO
/TODO
#ignore all files in the build/ directory
build/
#ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
#ignore all .pdf files in the doc/ directory
doc/**/*.pdf
常用.gitignore配置
node_modules/
npm-debug.log
# Numerous always-ignore extensions
*.diff
*.err
*.orig
*.log
*.rej
*.swo
*.swp
*.zip
*.vi
*~
# OS or Editor folders
.DS_Store
._*
Thumbs.db
.cache
.project
.settings
*.sublime-project
*.sublime-workspace
文章来源: gitignore配置规范整理