在使用git的过程中,经常会发现某些中间文件或临时文件总是出现的untrack文件中,例如当我们运行 git status时。 这些文件我们不需要提交到git中,但是总是显示出来,提示我们这些文件处于untrack也挺讨厌的。
git提供了一种方式,让我来忽略掉这些文件:在工作区中,与.git文件夹同级的地方建一个.gitignore文件,在里面填上我们要忽略的文件即可。
.gitignore文件的编写规则:
- 所有的空行或者以#开头的都会被Git忽略掉
- 可以使用标准的glob模式进行匹配
- 匹配模式可以以 / 开头,防止递归
- 匹配模式可以以 / 结尾,用以指定目录
- 要忽略指定模式以外的文件或目录,可以在模式前加 !,取反。
这里的glob模式,是指shell下所使用的简化了的正则表达式,规则如下:
- 星号(*)匹配0个或多个任意字符
- [abc] 匹配任何一个(且仅一个)在中括号的字符
- 问号(?)匹配一个(且仅一个)任意字符
- [0-9] 带短划线时,表示匹配一个(且仅一个)在这2个字符之间的字符
- 两个星号(**)表示匹配任意中间目录
下面给一个.gitignore文件的例子:
# 不包含 .a 结尾的文件
*.a
#但是要包含lib.a,即使你已经忽略了所有 .a 文件
!lib.a
#仅会略当前目录下的 TODO 文件, 这个规则不应用于子文件夹
/TODO
#忽略指定文件夹下的所有文件
build/
#忽略指定位置,指定类型的文件. 不会忽略 doc/server/arch.txt
doc/*.txt
#忽略指定文件下的所有指定类型文件,包括子文件夹下的
doc/**/*.txt
我们不用从头开始写这个文件,大神已经为我们准备了很多的模板:
https://github.com/github/gitignore