Git 忽略文件
1 被忽略的文件
项目中有些文件是不需要进入版本库中,我们可以设置忽略文件,哪些文件需要设置为被忽略:
- 忽略操作系统自动生成的文件,比如缩略图等;
- 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如 Java 编译产生的
.class
文件; - 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
2 .gitignore 文件
忽略文件的文件名是 .gitignore
的文件, 文件内可以设置项目的忽略规则。
忽略文件可以放在项目中的任意目录中,放在哪个目录作用范围就是哪个目录; 一般忽略文件会放在项目的根目录下。
示例内容如下:
# 此为注释
# 忽略所有的 .a 文件
*.a
# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a
# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO
# 忽略任何目录下名为 build 的文件夹
build/
# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
可以用git check-ignore
命令检查 .gitignore
文件格式是否正确。
.gitignore
文件的格式规则如下:
- 空格不匹配任意文件,可作为分隔符,可用反斜杠转义。
#
开头的文件标识注释,可以使用反斜杠进行转义。!
开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用!
也不会再次被包含。可以使用反斜杠进行转义。/
结束的模式只匹配目录以及在该目录路径下的内容。/
开始的模式匹配当前目录下的,(gitignore 文件所在的目录)**
匹配多级目录,可在开始,中间,结束。*
匹配任意数量的任意字符串。?
通用匹配单个字符。[]
通用匹配单个字符列表。
3 如果要忽略的文件已经提交到仓库
对于已经加入到版本库的文件,可以在版本库中删除该文件
git rm --cached .idea
然后在 .gitignore
中配置忽略
.idea
最后执行 git add
和 git commit
提交即可。