1. .gitignore文件
在工作区中的文件内容,很多时候我们基本只关注源文件。所以,肯定有些文件是不想使用git去管理的,比如:
- 编译生成的中间文件
- 相关的IDE工程文件(当然也可以进行git管理)
- 一些固定内容的说明文件等等
如何忽略这些我们不想进行git管理的文件?
方法就是:在工作目录下,创建一个 .gitignore
的文件,然后在文件里面列出来我们要忽略哪些文件即可。
也就是说 .gitignore
文件相当于设置了一个过滤规则,可以指定哪些文件可以不纳入git进行版本管理。
2. .gitignore文件的规范
.gitignore
文件的编写是有一定的规范 的,如下:
- 所有空行或者以
#
开头的行都会被 Git 忽略 - 可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。(glob 模式是指 shell 所使用的简化了的正则表达式)
- 匹配模式可以以(
/
)开头防止递归 - 匹配模式可以以(
/
)结尾指定目录 - 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(
!
)取反
具体的例子解释如下:
命令格式 | 作用 |
---|---|
*.o | 忽略工作目录下所有的 .o 文件 |
/TODO | 只忽略当前目录下的 TODO 文件,而不忽略子目录下的 subdir/TODO 文件 |
build/ | 忽略 build/ 目录下的所有文件 |
!lib.o | 跟踪 lib.o 文件,即使在前面忽略了所有的 .o 文件 |
doc/*.txt | 只是忽略 doc/notes.txt,但不忽略它的子目录的 doc/server/arch.txt |
doc/**/ *.pdf | 忽略 doc/ 目录及其所有子目录下的 .pdf 文件 |
详细的解释可以参考下面这篇博文:
https://blog.csdn.net/HYEHYEHYE/article/details/120861604
3. 示例
比如,我在 .gitignore
文件中,写入如下内容:
*.o
*.obj
*.bak
*.dep
*.lib
*.a
*.i
*.d
*.exe
就相当于在工作目录下,忽略了所有上面写的这些后缀格式的文件了。
如下图所示: