gitignore规则简介

2021-05-02 GIT 大约 2 分钟

# 介绍;

概述:git版本管理工具大家都用过,但时有时候我们不需要提交所有的文件到版本管理中,比如:node_modules等;

​ 这时我们便会用到.gitignore文件,来配置规则以忽略我们不需要追踪的文件;

# 规则说明;

  1. 空行不匹配任何文件,因此可以用作分隔符以提高可读性 ;

  2. 开头的行用作注释。

  3. 斜杠/用作目录分隔符。分隔符可能出现在开始,中间或结尾。

  4. 如果开头或中间(或两者都有)有分隔符,则该匹配是相对于特定.gitignore文件本身的目录级别的。

  • /bar/foo和(bar/foo同等效果)仅匹配和``.gitignore同级的根目录下的/bar/foo,不匹配/bar/foo.text`。

  • /foo/bar.*匹配和``.gitignore同级的根目录下的/foo/bar/foo/bar.text`。

  • foo.*仅匹配同级目录下的所有foo.*文件。例:foo.text

  • bar/bar同等效果:匹配同级目录下的所有bar文件夹

  • /bar仅匹配同级根目录下bar文件。

  • foo/*匹配foo/test.json(常规文件)和foo/bar(目录),但不匹配foo / bar / hello.c

  1. 前导 **后跟斜杠表示在所有目录中均匹配。
  • **/foo与文件 foo相同的任何位置都匹配文件夹 foo**/foo/bar bar会在目录 foo 正下方的任何位置匹配文件夹。
  1. 尾部的“ /**”与内部的所有内容匹配。例如,“ abc/**”将目录“ abc” 内的所有文件(相对于.gitignore文件位置)以无限深度进行匹配。

  2. 斜杠后跟两个连续的星号,然后斜杠匹配零个或多个目录

  • 例如,“ a/**/b”匹配“ a/b”,“ a/x/b”,“ a/x/y/b”等。
  1. 例子

    • hello.*匹配名称以hello开头的任何文件。如果只想将此限制于目录而不是其子目录,则可以在模式前面加上斜杠,即/hello.*;模式现在匹配hello.txthello.c但是不 匹配a/hello.java

# 使用;

  1. 新建:.gitignore文件;
  2. 配置规则;
.DS_Store
node_modules
/dist

# local env files
.env.local
.env.*.local

# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
上次编辑于: 2023年7月4日 09:36