gitignore规则再学习
gitignore规则之前就学习过, 不过到现在还是一知半解, 昨天又重新学习了一下, 并做了一些实验, 似乎又明白了, 所以记录下来, 以备后续查阅.
- 首先,
.gitignore
文件所在的目录作为匹配的根目录 - 对于每一个目录或者文件全路径, 进行匹配规则验证
如下所示的目录结构:
要匹配的文件或者目录名如下:
/A1/
/A1/a.txt
/A1/b.txt
/B1/
/B1/A2/
/B1/a.txt
/B1/b.txt
/.gitignore
/a.txt
- 匹配时要匹配文件或者目录的全名
比如,.gitignore
的内容是a
, 则不会匹配任何一个, 但是如果是a.txt
, 则会匹配所有包括a.txt的项, 如下所示:
*
可以匹配任何字符, 不管是当前目录还是子目录
如下所示:
- 前面是
/
, 表示仅匹配当前目录
比如/a.txt
表示匹配当前目录下的a.txt
文件, 可以理解为把文件全路径作为字符串, 从字符串的开头进行匹配. 如下所示:
- 后面是
/
, 表示仅匹配目录(含子目录)
**
表示多级目录, 比如/src/**/a.txt
表示匹配根目录下src
目录下的任何子目录下的a.txt
文件- 还有别的匹配规则, 懒得写了
- 最后, 补充一个经验, gitignore是分层处理的, 最好需要时每一个目录下面都放置一个gitignore文件, 每个文件只管理当前目录, 这样比较清楚, 出现问题也比较容易定位.