目的:在日常开发中,有一些文件并不需要我们纳入版本管理,比如临时文件,日志文件等及工具文件
常见如''.vscode' ,'.idea',vue项目的node_modules
核心文件 ----- .gitignore 此文件即专门配置我们不需要管理的文件
基础使用:
1. 新建一个项目
2. 初始化git仓库,进入项目目录,输入命令git init
3.查看待追踪(可追踪)的文件,命令git status
4. 修改或新建.gitingore文件
5.文本编辑器打开,添加需要忽略的文件或目录,一行一个,注意分行,以README.md示例
6.再次使用git status命令查看待追踪文件,readme.md已经不见了
高级用法
模式匹配,类似于正则表达式,用于同时匹配多个需要忽略的文件,避免重复劳动
基础规则
-
空行不匹配任何内容,一般用于分割符,便于阅读
-
#用于注释,\用于转义
-
*用于匹配任意个字符,?用于匹配单个字符
如:*.json会匹配所有以.json结尾的文件,单独使用*将匹配所有内用
?.json会匹配a.json,b.json,c.json之类的文件
-
/目录分隔符
-
用在起始位置
用在起止位置表示只匹配以.gitignore文件所在目录的目录,如/dist
如果不加斜杠dist将匹配从.gitingore文件所在目录往下所有的名叫dist的目录
-
用在结束位置
用在结束位置表示只匹配目录,否则将匹配所有的同名目录和文件
-
-
!取反,不包含的文件重新被包含(不能让父级目录已经被忽略的文件或目录从重新被包含)
比如当你需要排除a目录下的所有内容,除了b.json文件
错误写法
##由于a作为父级目录已经被排除,子级文件!不生效 a/ !a/b.json
正确写法
#先排除a目录下的所有文件,再排除其子目录下的 a/* !a/b.json
-
[]用于匹配一个字符列表(只能匹配一次)
如a[bc]d,将匹配abd,acd
-
** 用于匹配多级目录
比如a/**/b,将匹配a/x/b,a/y/b,a/y/z/b等等