.gitignore文件—git忽略文件
.gitignore
文件用来忽略被指定的文件或文件夹的改动,被记录在.gitignore
文件里的文件或文件夹,是无法被git跟踪到的,换句话说,被忽略的文件是不会被放入到远程仓库里的。如果文件已经存在于远程仓库中,是无法通过
.gitignore
文件来忽略的。
.gitignore
文件存放于git仓库的根目录下。当你使用git add .的时候有没有遇到把你不想提交的文件也添加到了缓存中去?比如项目的本地配置信息,如果你上传到Git中去其他人pull下来的时候就会和他本地的配置有冲突,所以这样的个性化配置文件我们一般不把它推送到git服务器中,但是又为了偷懒每次添加缓存的时候都想用git add .而不是手动一个一个文件添加,该怎么办呢?
很简单,git为我们提供了一个.gitignore文件只要在这个文件中申明那些文件你不希望添加到git中去,这样当你使用git add .的时候这些文件就会被自动忽略掉。
还有比如Java编译产生的.class文件等
语法
.gitignore语法:
以”#”号开头表示注释; 以斜杠“/”开头表示目录; 以星号“*”通配多个字符; 以问号“?”通配单个字符 以方括号“[]”包含单个字符的匹配列表; 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
注:/在文件夹名前,表示根目录下的某个文件夹,/test/表示忽略根目录下的/test/目录的全部内容,而test/表示忽略文件夹test下的全部内容,不管是根目录下的/test/,还是某个子目录下的test文件夹,比如:/child/test,都会被忽略
用法
下面演示下gitignore规则的常用用法
*.txt ,*.xls 表示过滤某种类型的文件 target/ :表示过滤这个文件夹下的所有文件 /test/a.txt ,/test/b.xls 表示指定过滤某个文件下具体文件 !*.java , !/dir/test/ !开头表示不过滤 *.[ab] 支持通配符:过滤所有以.a或者.b为扩展名的文件 /test 仅仅忽略项目根目录下的 test 文件,不包括 child/test等非根目录的test目录