您的位置:首页 > 其它

gitignore语法

2018-04-26 22:38 323 查看
字数:513

阅读时间:5分钟

github官方提供了一个全面的gitignore模板,基本上能满足我们的需求。

地址入口:https://github.com/github/gitignore

不过有许多库其实也是使用的相同语法来忽略文件的,例如eslint。所以咱还是有必要详细了解一下。

规则详情

gitignore其实就是在glob匹配的基础上添加了路径匹配和
!
#
语法。

先上代码:

#先忽略当前目录下所有文件
/*
!*-ui
dist
forms
libs
dll

如上所示,每一行配置都是一条独立的匹配语句,遵循如下规则:

1.
#
开始表注释。

2.
!
开始表取消忽略。例,
!*-ui
就是重新匹配当前目录下的以‘-ui’结尾的文件夹。这里需要注意,如果父级目录被忽略了,子集目录是无法取消忽略的。例:

*-ui
!jquery-ui/jquery.js

是无法重新匹配jquery.js文件的。正确写法:

*-ui
!jquery-ui
jquery-ui/*
!!jquery-ui/jquery.js

3.空行不做任何匹配

4.如果匹配语句中没有’\‘符号,则视为一个glob匹配。

glob匹配是shell使用的简化版正则表达式,只使用了正则里面的
*
?
[]
语法。例:
foo
可以匹配到 ’foo‘、’app/foo‘、’app/food.js‘等。

5.如果表达式中存在''符号,就是路径匹配语法。例:
foo/
只会匹配’foo‘、’app/foo‘,不会匹配’app/food.js‘。而
foo/*.js
只会匹配foo文件夹中所有的js文件

6.以
\
开始,表匹配当前目录。例:
/*.js
可以匹配'app.js',但无法匹配'js/app.js'。

7.
**
表示匹配零到多级目录。

例:

**/foo
foo


abc/**
匹配abc本身以及其所有子文件夹、子文件夹的子文件夹(无限深度)和其中文件。

abc/**/d
匹配’abc/d‘、’abc/e/d‘、’abc/e/f/d‘、’e/abc/f/d‘等。

参考资料:https://git-scm.com/docs/gitignore

欢迎关注我的微信公众号:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  gitignore ESLint