gitignore如何编写
我们使用git托管项目时,并不是所有文件都要托管,这时我们需要gitignore文件来指定哪些不要托管。
1.gitignore创建方式
在git bash中输入
touch .gitignore
然后输入
vim .gitignore
进行编辑,不熟悉vim的也可以使用记事本等编辑软件。
2.gitignore示例
# 只包含 foo/bar 文件夹 的 gitignore
/*
!/foo
/foo/*
!/foo/bar
3.gitignore编写规范(不怎么重要的规范就忽略了,这里列举我们常用的满足需求即可)
注:我们将gitignore文件的每行文字称之为模式(pattern),模式规定了怎样和文件进行匹配。
- ‘#’ 号开头代表注释
- ‘!’ 开头的模式代表此模式被无效化,该模式下的文件若之前被排除,将重新被git添加。
- ‘/’ 符作为文件夹的分隔符
- 如果模式中的头部或中间出现 ‘/’(尾部不满足),则此模式在gitignore文件路径同层开始起作用;
如果没有‘/’ ,任何比 gitignore文件 深 的文件都会被影响。 - 模式尾部出现’/’,则该模式只匹配文件夹;
否则,文件夹和文件都会受影响。
Note:综合上面两条,我们可知 doc/frotz/ 能匹配 doc/frotz 文件夹, 而不能匹配 a/doc/frotz文件夹;但是,frotz/ 可以同时匹配 frotz 文件夹 和 a/frotz 文件夹。 - 单个星号 ‘*’ 通常用来替代所有可能的文本内容,比如
*.txt 匹配所有txt格式的文件
- 两个星号‘**’ 通常用来指代所有可能的位置,比如
**/foo 匹配所有路径下的foo文件或文件夹
/** 匹配所有内容
abc/** 匹配所有abc文件下的所有内容
a/**/b 匹配a文件夹下所有位置的b文件夹或文件,“a/b", "a/x/b", "a/x/y/b”都会被匹配
模式规范很多遵循正则表达式规范,读者应该好好学习一下。
4.gitignore示例解析
# 只包含 foo/bar 文件夹 的 gitignore
/* 1.先排除掉所有文件夹
!/foo 2.加入foo文件夹
/foo/* 3.排除掉foo文件夹内所有内容
!/foo/bar 4.加入bar4文件夹
编写方法总结:由外到里,逐步梳理要加入文件,排除文件,逐层深入。