.gitignore文件内容格式规范介绍说明详解
Posted 大茅坑的小石头
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.gitignore文件内容格式规范介绍说明详解相关的知识,希望对你有一定的参考价值。
引言
我们在使用github或者gitee进行代码管理的时候,经常要接触git,很多时候我们希望项目中的一些文件不被纳入版本控制。比如我一个java工程,每次改改代码编译之后都会生成class文件,但是我不希望对我的class文件进行版本控制,希望git可以把class文件ignore掉。
此时,就需要我们的.gitignore
文件出场了。这里我就简单介绍一下.gitignore
文件内容的格式。
- 空行不匹配任何文件,可以用来对内容分割增强阅读性
- #开头表示注释。如果格式需要#开头,那么需要转义一下:前面加上反斜杠("
\\
") - 末尾的空格会被忽略,除非被反斜杠引用
- "
!
"前缀可以使他后面的模式变得无效。他可以用于把之前被忽略的文件再次包含进来。但是出于性能考虑被父目录所忽略的文件,这里不会再次被包含进来。如果被忽略的文件以!开头,那么需要转义一下。 - 以斜杠结尾的模式,匹配文件夹。例如
foo/
会匹配上foo文件夹,但是不会匹配普通的文件foo或者符号文件。 - 如果一个模式中不包含斜杠,那么他会被当做shell的glob模式进行匹配,匹配的位置为当前
.gitignore
所在的文件夹,如果没有.gitignore
那就是工作区的顶层目录 - 除此之外,Git会使用一下的shell glob模式: “
*
” 可以匹配除了 “/
“以外的任何东西,”?
” 可以匹配除了 "/
“以外的任意字符,”[]
"可以匹配一个在特定范围内的字符 - 开头使用的反斜杠匹配路径的开始位置。例如:"/*.c"可以匹配"cat-file.c"文件,但是不能匹配"mozilla-sha1/sha1.c"文件
连续的两个星号具有特殊的含义:
- “
**/
“开头表示匹配所有目录。例如: “**/foo
” 匹配所有所有目录下名称为foo的文件和文件夹,”**/foo/bar
” 匹配所有foo文件夹下名称为bar的文件和文件夹 - "
/**
"结尾表示匹配在他下面的所有东西。例如: "abc/**
"匹配所有在abc文件夹下的文件,当然这个abc的路径是相对于.gitignore
文件所在的文件夹。 - "
/**/
"匹配零到多个文件夹。例如: “a/**/b
“可以匹配”a/b
”, “a/x/b
”, "a/x/y/b
"等等。 - 其他连续的
*
将被认为是普通的星号,按照上述的规则进行匹配。
以上是关于.gitignore文件内容格式规范介绍说明详解的主要内容,如果未能解决你的问题,请参考以下文章