git设置忽略文件.gitignore

在仓库目录下新建一个名为.gitignore的文件(由于是点开头,没有文件名,没办法直接在windows目录下直接建立,必须经过右键Git Bash,按照linux的方式来新建.gitignore文件)。以下图所示。html

.gitignore文件对其所在的目录及所在目录的所有子目录均有效。经过将.gitignore文件添加到仓库,其余开发者更新该文件到本地仓库,以共享同一套忽略规则。linux

如下涉及的ignore文件均为以下格式:git

# 以'#'开始的行,被视为注释. # 忽略掉全部文件名是 foo.txt的文件. foo.txt # 忽略全部生成的 html文件, *.html # foo.html是手工维护的,因此例外. !foo.html # 忽略全部.o和 .a文件. *.[oa]
配置语法:
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

 

经常使用的规则:
1)/mtk/               过滤整个文件夹
2)*.zip                过滤全部.zip文件
3)/mtk/do.c         过滤某个具体文件github

被过滤掉的文件就不会出如今git仓库中(gitlab或github)了,固然本地库中还有,只是push的时候不会上传。
须要注意的是,gitignore还能够指定要将哪些文件添加到版本管理中:
1)!*.zip
2)!/mtk/one.txtwindows

惟一的区别就是规则开头多了一个感叹号,Git会将知足这类规则的文件添加到版本管理中。
为何要有两种规则呢?想象一个场景:假如咱们只须要管理/mtk/目录中的one.txt文件,这个目录中的其余文件都不须要管理,那么咱们就须要使用:
1)/mtk/
2)!/mtk/one.txt
假设咱们只有过滤规则,而没有添加规则,那么咱们就须要把/mtk/目录下除了one.txt之外的全部文件都写出来!gitlab

最后须要强调的一点是,若是你不慎在建立.gitignore文件以前就push了项目,那么即便你在.gitignore文件中写入新的过滤规则,这些规则也不会起做用,Git仍然会对全部文件进行版本管理。
简单来讲,出现这种问题的缘由就是Git已经开始管理这些文件了,因此你没法再经过过滤规则过滤它们。所以必定要养成在项目开始就建立.gitignore文件的习惯,不然一旦push,处理起来会很是麻烦。spa

相关文章
相关标签/搜索