Skip to content

git 忽略文件

|-- git-demo
    |-- .gitignore
    |-- src
        |-- test.txt
        |-- utils
            |-- index.js
            |-- api
                |-- index.js

1 基础规则

  • 每一行是一条匹配规则,每个规则路径都是相对项目根目录。以 # 开头的行表示注释。

  • 开头的斜杠表示项目根目录,推荐带上,如 src/utils/api/index.js 等价与 /src/utils/api/index.js

  • /src/utils 既表示目录,也表示文件(src下如果存在文件utils)。

  • 末尾的斜杠表示目录,如 /src/utils/ 只表示目录。

如果想要忽略文件夹api下的index.js,可以这样写:

src/utils/apisrc/utils/api/src/utils/api/index.js

/src/utils/api/src/utils/api//src/utils/api/index.js

可以发现,规则是需要写完整的路径名,要么具体到文件index.js本身,要么具体到index.js的父文件夹。

在了解下面规则后,上面的写法可以再简化

2 包含

! 表示包含某文件(夹),如果之前的规则排除了某文件(夹),可以通过 ! 将其重新包含进来。但是,如果包含某文件的文件夹被排除了,即使使用 ! 也无法重新将其包含进来。

3 量词

* 表示任意长度的字符,除了表示一个斜杠 /

? 表示任意一个字符,除了斜杠 /

4 范围

[xyz][a-zA-Z] 一个字符集合。匹配方括号中的任意字符

5 连续星号

**/api 匹配任意层级路径下的文件(夹)api

src/** 匹配目录src下任意层级的目录、文件

src/**/index.js 这里连续星号表示0个或更多文件夹