gitignore pattern:
- 空白行、
#
開始的行會被忽略 - 使用標準的
glob pattern
時,將會在整個文件樹裏遞歸匹配 - 可以在前面加上
/
來阻止遞歸,只匹配當前目錄 - 可以在後面加上
/
來表明是一個目錄(默認目錄和文件都會匹配) - 可以在簽名加上
!
來對一個 pattern 取反
glob pattern(和 shell 使用的簡化的正則表達式很像):
?
代表一個字符*
代表 0 個或多個字符**
代表 0 個或多個目錄[abc]
代表 [] 中的任意一個字符[0-9]
代表 0-9 之間的任意一個字符
例子:
# 忽略所有的 .a 文件、.a 目錄
*.a
# 不忽略 lib.a, 就算聲明瞭 .a 也不會忽略
!lib.a
# 只忽略當前目錄下的 TODO 文件、TODO 目錄
/TODO
# 忽略所有目錄中的 build 目錄
build/
# 忽略 doc 直接目錄下的 txt 文件、txt 目錄;如忽略 doc/notes.txt, 不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc 直接目錄和所有子目錄下的 pdf 文件、pdf 目錄
doc/**/*.pdf