gitignore
git help gitignore
gitignore file
gitignore patterns 有多个来源,优先级从高到低(同一优先级内后面的覆盖前面的):
- 命令行参数
- 从当前文件所在目录开始向上一直到根目录查找 .gitignore 文件,离文件近的优先级高
$GIT_DIR/info/exclude文件core.excludesFile指定的文件
通常在项目根目录下面放一份 .gitignore 文件,这个文件属于项目的一部分,所有克隆都会使用它。
$GIT_DIR/info/exclude 文件只针对这个本地库。
core.excludesFile 指定的文件针对本机上所有的项目,查看具体位置:
git config -l
git config --get core.excludesfile
建议将系统文件 patterns 添加到这个文件:
*.DS_Store
._*
Thumbs.db
.cache
gitignore 不影响 tracked files
git rm --cached file
gitignore pattern
# 开始的表示注释。
\ 可以用于转义,比如 \#, \!。
! 开始的表示取消忽略。出于性能的考虑,如果文件的父目录被忽略,! 不能取消忽略此文件。
/ 开始的表示是库根目录。其它的是相对路径,.gitignore 文件指定的是相对于此文件,其它指定的是相对于库根目录。
foo/ 表示 foo 目录,而不是 foo 文件或链接。
* 不匹配 /, foo/*.html 只匹配 foo 目录下的文件,不会匹配 foo 子目录下的文件。
单独的 ** 可以匹配 /。**/foo.txt 匹配所有目录下面的 foo.txt。foo/** 匹配 foo 目录及其子目录下的所有文件。