git文档忽略
git的文档忽略只是忽略未被跟踪的文件,已经存在于版本库中的文件是不会被忽略的。
git文档忽略的方法
在任何目录下都可以建立一个.gitignore的文件,该文件中的存放的内容是要忽略的文件,而其作用范围是.gitignore所处的目录及其子目录。文件的内容的格式和规范应该遵循下面的原则:
- 忽略文件中的空行或以#开关的行会被忽略(即无效)
- 可以使用通配符
- 如果名称的最前面是一个路径分隔符(/),表明要忽略的文件在此目录下,而非子目录的文件
- 如果名称的最后面是一个路径分隔符(/),表明要忽略的是整个目录,同名文件不忽略。否则同名的文件和目录都忽略
- 通过在名称的最前面添加一个感叹号(!),代表不忽略
例如:
# 这是注释行 —- 被忽略
*.a # 忽略所有以 .a 为扩展名的文件
!lib.a # 但是 lib.a 文件或目录不要忽略,即使前面设置了对 *.a 的忽略
/TODO # 只忽略此目录下的 TODO 文件,子目录下的 TODO 文件不忽略
build/ # 忽略所有 build/ 目录下的文件
doc/*.txt # 忽略文件如 /doc/notes.txt, 但是文件如 doc/server/arch.txt 不被忽略
“共享式”忽略和”独享式”忽略
文件 .gitignore 设置的文件忽略是共享式的,这所以称其为”共享式”, 是因为 .gitignore 被添加到版本库后成为了版本库的一部分,当版本库共享给他人,或者把版本库摄像头到集中式的服务器时,这个忽略文件就会出现在他人的工作区中,文件忽略在他人 的工作区中同样生效。
与”共享式”忽略对应的是”独享式”忽略,独享式忽略有两种方式:
- 一种是针对具体版本库的”独享式”忽略,即在版本库 .git 目录下的一个文件 .git/info/exclude 来设置文件忽略。
- 另一种是全局的,即通过 Git 的配置变量 core.excludesfile 指定的一个忽略文件,其设置的忽略对所有本地版本库均有效。
忽略文件的书写规范也遵循上面的原则。