GitHub - github/gitignore: A collection of useful .gitignore templates
在执行完 git init
后并不会自动创建 .gitignore
文件,我们可以手动创建,跟自己的项目文件在一个目录中。
例如有几个隐私文件不需要被跟踪:
可以创建 .gitignore
并直接写对应的文件名来取消跟踪,如 apilink
,效果如下:
gitignore 还支持 glob 模式匹配:
- 每一个非空或者以
#
开头的行都会被当做匹配行处理 - 每个匹配行的内容都会被递归地应用在所有文件夹中,除非在开头加上
/
则只会在当前目录即项目根目录使用 - 若要忽略文件夹则需要在文件夹名结尾加上
/
- 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(
!
)取反
例如:
# 忽略所有的 .a 文件
*.a
# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a
# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO
# 忽略任何目录下名为 build 的文件夹
build/
# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
在最简单的情况下,一个仓库可能只根目录下有一个 .gitignore
文件,它递归地应用到整个仓库中。 然而,子目录下也可以有额外的 .gitignore
文件。子目录中的 .gitignore
文件中的规则只作用于它所在的目录中。 (Linux 内核的源码库拥有 206 个 .gitignore
文件 )更多详情见 man gitignore
。