跳到主要内容

Git Ignore

2024年05月20日
柏拉文
越努力,越幸运

一、认识


二、语法


2.1 *

星号 * 匹配斜线以外的任何字符。

2.2 **

** 在带斜杠目录之前,表示在所有目录中匹配。例如,**/foo 匹配任何文件或目录的foo,与模式foo相同。

路径后跟有 /** 表示匹配这个目录里面的所有文件。例如,abc/** 匹配相对于 .gitignore 文件的位置中目录 abc 内的所有文件,深度无限。

一个斜杠后面是两个连续的星号再接上一个斜杠,匹配零个或多个目录。例如,a/**/b 匹配 a/ba/x/ba/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"