1. 什么是GitHub忽略文件
在使用Git进行版本控制时,需要将文件进行提交和保存。但是有些文件并不需要跟踪版本变化或者上传到远程仓库,比如临时文件、缓存文件、日志文件等等。这个时候,我们需要使用.gitignore文件来指定这些文件应该被忽略。
Git会自动忽略.gitignore文件中指定的文件,这样就可以保持仓库的干净和简洁。同时,忽略不必要的文件还可以加快仓库的上传和下载速度,减小仓库的体积。
# 忽略所有 .a 文件
*.a
# 但是 foo.a 除外
!foo.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录下的所有 .pdf 文件
doc/**/*.pdf
2. 修改.gitignore文件
2.1 gitignore文件的位置
在使用Git时,每个仓库都有一个.gitignore文件,这个文件放在仓库的根目录下。如果仓库中没有.gitignore文件,可以通过新建一个文件并命名为.gitignore的方式来创建。
如果需要在整个计算机上设置全局忽略文件,可以在Git的配置文件中进行设置。可以通过以下命令来打开Git的全局配置文件(如果此前没有设置过,会新建一个):
git config --global core.excludesfile ~/.gitignore_global
这样Git就会在所有仓库中都自动忽略.gitignore_global文件中指定的文件。
2.2 修改.gitignore文件
在修改.gitignore文件时,需要注意一些细节。首先需要了解一些gitignore文件的语法:
仅有注释行以 # 开头。
可以使用正则表达式。
匹配模式可以层层嵌套。
以 / 开头表示只匹配根目录。
以 / 结尾表示只匹配文件夹。
否定模式以 ! 开头。
每个匹配模式占一行。
在.gitignore文件中指定忽略文件时,需要注意一些规则:
不要将.gitignore文件放到需要忽略的文件夹下。
不要使用相对路径。
不要在.gitignore文件中直接指定文件列表,而是应该使用模式匹配。
不要忽略重要的文件或文件夹,比如.git文件夹、README文件和LICENSE文件等。
以下是一些实用的.gitignore规则:
# 忽略所有 .log 文件
*.log
# 忽略所有 .tmp 文件
*.tmp
# 忽略所有 .swp 文件
*.swp
# 忽略所有 .DS_Store 文件
.DS_Store
# 忽略所有 backup 目录
backup/
# 忽略所有 hidden 目录及其文件
/hidden/**
# 不要忽略这些文件夹
!example/
!example/src/
!example/src/main/
!example/src/main/resources/
!example/src/test/
!example/src/test/java/
!example/src/test/resources/
!example/target/
!example/bin/
3. 生效.gitignore文件
当我们修改了.gitignore文件之后,需要将其应用到已经跟踪的文件中。一个简单的方法是使用以下命令:
git rm -r --cached .
git add .
git commit -m "update .gitignore file"
这个命令会从git仓库中移除已经提交过的文件,然后重新添加并提交。这样就可以使修改的.gitignore文件生效了。