在每一次的开发中,一般总会有一些文件是我们不希望提交、也不希望出现在未跟踪的文件列表里的。这时,我们可以使用 .gitignore
文件,屏蔽或排除掉我们不想添加到git仓库中的文件,git已经跟踪的文件则不受影响。
实例了然
1 | # 忽略所有的 .a 文件(星号*泛指)。 |
gitignore
文件中的每一行都指定一个模式。在决定是否忽略路径时,Git通常会gitignore按照从高到低的优先顺序检查来自多个源的模式(从一个优先级,最后一个匹配模式决定结果)。
编写规范
文件 .gitignore
的格式规范如下:
所有空行或者以 # 开头的行都会被 Git 忽略,即注释。
可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
匹配模式可以以(/)开头防止递归。
匹配模式可以以(/)结尾指定目录。
要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。
- 星号(*)匹配零个或多个任意字符;
[abc]
匹配任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);- 问号
(?)
只匹配一个任意字符; - 如果在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如
[0-9]
表示匹配所有 0 到 9 的数字)。 - 使用两个星号(**)表示匹配任意中间目录,比如
a/**/z
可以匹配a/z
、a/b/z
或a/b/c/z
等。
常用gitignore模板
因为忽略文件有极大的共性,因此有时候不需要我们自己编写.gitignore
文件,而可以直接使用模板。
github有一个仓库专门收集了.gitignore
模板,一方面是便利,可以直接使用;另一方面是接入行业共识或标准。仓库:gitignore