Git Ignore
2024年05月20日
一、认识
二、语法
2.1 *
星号 *
匹配斜线以外的任何字符。
2.2 **
**
在带斜杠目录之前,表示在所有目录中匹配。例如,**/foo
匹配任何文件或目录的foo
,与模式foo
相同。
路径后跟有 /**
表示匹配这个目录里面的所有文件。例如,abc/**
匹配相对于 .gitignore
文件的位置中目录 abc
内的所有文件,深度无限。
一个斜杠后面是两个连续的星号再接上一个斜杠,匹配零个或多个目录。例如,a/**/b
匹配 a/b
、a/x/b
、a/x/y/b
,等等,依此类推。
三、用法
为存储库创建 .gitignore
文件。
3.1 生成配置文件
touch .gitignore
3.2 忽略指定文件
xxx.yy
zz/xx.yy
3.3 忽略通配文件
**排除所有 .后缀
的文件
*.后缀
zz/*.后缀 // 仅匹配 zz 目录下的 *.后缀
zz/**/*.后缀 // 匹配所有 zz 目录下的 *.后缀
四、问题
4.1 .gitignore 不生效是为什么?
答: 在项目开发过程中个,一般都会添加 .gitignore
文件,规则很简单,但有时会发现,规则不生效。原因是 .gitignore
只能忽略那些原来没有被 track
的文件,如果某些文件已经被纳入了版本管理中,则修改 .gitignore
是无效的。解决方案为: 先把本地缓存删除(改变成未track
状态),然后再提交
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
或者,直接取消指定文件的跟踪
git rm --cached 文件路径
git add .
git commit -m "update .gitignore"