文件 .gitignore 配置
规则优先级
命令行 > 当前目录 > 父级目录 > ... > $GIT_DIR/info/exclude > core.excludesfile
匹配规则
空格 不匹配
# 文件注释
/ 开始位置,只匹配文件夹以及该文件夹路径下的内容,不匹配该文件
/ 结束位置,匹配项目跟目录
** 多级目录
? 单个字符
[] 单个字符列表
! 否定,再次包含
忽略示例
/bin 忽略根目录下的bin文件
/*.c 忽略cat.c,不忽略 build/cat.c
bin/ 忽略当前路径下的bin文件夹及其子内容,不忽略bin文件
**/foo 忽略/foo, a/foo, a/b/foo等
a/**/b 忽略a/b, a/x/b, a/x/y/b等
*.log 忽略所有 .log 文件
config.php 忽略当前路径的 config.php 文件
debug/*.obj 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
!/bin/run.sh 不忽略 bin 目录下的 run.sh 文件
.gitignore 规则不生效
.gitignore只能忽略没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的,此时先把本地缓存删除(改变成未track状态)再提交。
git rm -r --cached .
git add .
git commit -m 'update .gitignore'