gitignore

规则

匹配规则和 linux文件匹配一样

  • 以斜杠“/”开头表示当前文件所在的目录;
  • 以星号“*”通配多个字符;
  • 以问号“?”通配单个字符
  • 以方括号“[]”包含单个字符的匹配列表;
  • 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
  • / 结束的模式代表的是匹配目录,只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
  • 如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# / 表示当前文件所在的目录
/

# ! 表示不忽略,就是特例的意思,/public/assets 文件不忽略
!/public/assets

# 忽略具体的文件
index.php

# 忽略所有的php
*.php

# 忽略 a.php b.php
[ab].php

# 忽略 public 文件夹以及 public 文件
/public

# 忽略 public 文件夹以及 public 文件夹下的所有目录及文件,下面两种写法效果一样
/public/*
/public/

# 忽略 doc 文件夹下所有 pdf 文件,无论他在子文件夹还是孙文件夹下。
doc/**/*.pdf

关于.gitignore规则不生效的问题

.gitignore只能忽略那些原来没有被track(追踪)的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

1
2
3
git rm -r --cached .
git add .
git commit -m 'update .gitignore'

gitignore
https://flepeng.github.io/044-Git-41-核心概念-gitignore/
作者
Lepeng
发布于
2021年3月8日
许可协议