官方链接: 链接
部分内容参考自: 链接
gitignore
指定git忽略的文件或目录,已经被git识别过的文件不受影响(已经git add/commit/push)
可以分别配置在三个位置:
$XDG_CONFIG_HOME/git/ignore1, $GIT_DIR/info/exclude, .gitignore
语法
规则
- 以斜杠“/”结尾,表示目录
- 星号“*”,表示多个通配符
- 问号“?”,表示单个通配符
- 以叹号“!”开头,表示不忽略匹配到的文件或目录
优先级
- 按行从上到下进行规则匹配:下面的优先级更高,与gitconfig类似
- "!"标识的与其他冲突时,按最后一次为准
- 以当前目录为起始,此目录的规则会列在父目录(直到此项目根目录)的后面
- .gitignore > .git/info/exclude > core.excludesFile2
举例
注意:根目录指.gitignore文件所在目录,子目录也是以此目录为起点
- fd1/*:忽略fd1目录下的全部内容
- /fd1/*:忽略根目录下的/fd1/目录的全部内容;
- bin:忽略bin目录下的所有内容;不管是…/bin/目录下的内容还是/bin/目录下的内容都将被忽略
- *.log:忽略根目录和所有子目录符合".log"后缀名的文件
- !*.log:不忽略所有根目录和子目录符合".log"后缀名的文件
gitignore_global
提示:此部分参考自第二个链接,未验证
依照相同规则,可以制作一份文件名为:.gitignore_global
需要在包含.git/的工程中执行以下指令:
git config --global core.excludesfile ~/.gitignore_global
也就是将全局忽略文件都设置为同一份:.gitignore_global;其中~/.gitignore_global为忽略文件所在路径。
猜想:此部分为对来自第二个链接内容的进一步猜测,未验证
也可配置系统级的gitignore,需要在包含.git/的工程中执行指令:
git config --system core.excludesfile /etc/gitignore
.git/info/exclude
.git/info/exclude与.gitignore不同在于:
文件 | 提交到版本库 | 用途 |
---|---|---|
.gitignore | 会 | 保存的是公共的需要排除的文件 |
.git/info/exclude | 不会 | 你自己本地需要排除的文件 |
当前,你也可以在.gitignore文件中添加.gitignore本身,就不会影响版本库