Git 忽略文件

1 被忽略的文件

项目中有些文件是不需要进入版本库中,我们可以设置忽略文件,哪些文件需要设置为被忽略:

  1. 忽略操作系统自动生成的文件,比如缩略图等;
  2. 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如 Java 编译产生的.class文件;
  3. 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

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 文件的格式规则如下:

  1. 空格不匹配任意文件,可作为分隔符,可用反斜杠转义。
  2. # 开头的文件标识注释,可以使用反斜杠进行转义。
  3. ! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义。
  4. / 结束的模式只匹配目录以及在该目录路径下的内容。
  5. / 开始的模式匹配当前目录下的,(gitignore 文件所在的目录)
  6. ** 匹配多级目录,可在开始,中间,结束。
  7. * 匹配任意数量的任意字符串。
  8. ? 通用匹配单个字符。
  9. [] 通用匹配单个字符列表。

3 如果要忽略的文件已经提交到仓库

对于已经加入到版本库的文件,可以在版本库中删除该文件

git rm --cached .idea

然后在 .gitignore 中配置忽略

.idea

最后执行 git addgit commit 提交即可。

results matching ""

    No results matching ""