gitignore配置详解

2025-05-09 14:45:12

如果你使用git来管惯栲狠疲理代码版本,你必须懂得如何使用.gitignore文件,该文件可以指定git忽略哪些文件,在git中的作用非常重要。在理解gitignore的配置之酡箔挝棍前,我们要先看看这些规则都可以来自哪里。通常git可以从多个地方获取忽略规则,优先级从上到下依次为:

`.gitignore`文件,`$GIT_DIR/info/exclude`文件和`core.excludesFile`配置文件中列明的文件。这三种写规则的方式有不同的用武之地。

规则的来源和优先级

.gitignore文件适合写于项目有关的规则,并且这些规则需要与合作者分享。

`$GIT_DIR/info/exclude`适用于与项目有关,但是你不想分享给其他作者,这些规则可能只适用于你自己。

`core.excludesFile`适用于你在任何情况下都需要忽略的规则。这种情况不常用。

规则的写法

空行不匹配任何文件,所以空行通常是规则分组的分隔符,只是在视觉上将不同的规则分组。

gitignore配置详解

以`#`开始的行代表注释,所以也不匹配任何文件。

gitignore配置详解

末尾的空格没有任何意义,如果你想匹配空格,你需要在空格前加转义字符``。

例如:`a `这种写法可以匹配`a `

gitignore配置详解

感叹号`!`的作用是从已有的忽略规则里排除一部分文件。注意想要让感叹号起作用,必须在前规则中使用通配符`*`。例如:

前规则写成:`.env/*`

想要追踪`.env`文件夹下的`data.txt`,需要追加一个规则:`!.env/data.txt`

如果前规则写成`.env`,则`!.env/data.txt`不起作用。

如果规则以`/`结尾,则表示匹配文件夹, 类似的文件和链接都不会匹配。

gitignore配置详解

如果规则中不包含`/`,则规则即可匹配文件夹也可以匹配文件和链接,类似于linux shell中的通配符,可以匹配任何可以与通配符匹配的路径。

gitignore配置详解

通配符无法匹配符号`/`,所以类似这样的规则`foo/*.html`不能匹配`foo/bar/test.html`。

gitignore配置详解

规则以`/`开头表示匹配`.gitignore`文件所在的目录。也就是说规则`/*.txt`只能匹配.gitignore所在目录下的所有txt文件,不能匹配其他目录下的txt文件。

gitignore配置详解

特殊情况举例

以`**/`开头的规则表示匹配所有文件夹,规则`**/a/b`能匹配`foo/a/b`也能匹配`foo/bar/a/b`

以`/**`结尾的规则表示匹配目录下所有文件和文件夹,规则`a/b/**`能匹配`/a/b/c`也能匹配`a/b/c/d/e`

规则中间包含`/**/`表示匹配任意路径,比如规则`a/**/b`可以匹配`a/foo/bar/b`和`a/e/m/c/b`。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢