前言:
.gitignore
文件是 Git 中用于指定哪些文件或目录不应被 Git 版本控制系统跟踪的配置文件。通过合理设置 .gitignore
,可以避免将不必要的文件(如编译输出、日志文件、IDE 配置等)提交到仓库中,保持代码库的整洁。
一、基本语法
1. 注释
以 #
开头的行为注释,不会被 Git 解析。
# 这是一个注释行
2. 忽略单个文件
直接列出文件名即可忽略该文件。
config/local.properties
3. 忽略特定类型的文件
使用通配符 *
来匹配文件类型。
*.log # 忽略所有 .log 结尾的文件
4. 忽略目录
在目录名称后加上 /
来指定忽略整个目录。
logs/ # 忽略 logs 目录及其所有内容
5. 忽略目录下的特定类型文件
如果只想忽略某个目录下的特定类型文件,可以这样写:
logs/*.log # 只忽略 logs 目录下的 .log 文件,不包括子目录
6. 忽略除某些文件外的所有文件
使用 !
符号来取消忽略规则。
*.log # 忽略所有 .log 文件
!important.log # 不忽略 important.log 文件
二、高级用法
1. 双星号 **
双星号可用于匹配任意层级的目录。
**/logs/*.log # 匹配任何位置 logs 目录下的 .log 文件
2. 单星号 *
单星号用于匹配单个路径段中的任意字符。
*.tmp # 匹配当前目录下所有 .tmp 结尾的文件
3. 使用问号 ?
问号用于匹配单个字符。
file?.txt # 匹配 file1.txt, fileA.txt 等,但不匹配 file10.txt
4. 字符集 [abc]
方括号内定义字符集,匹配其中任一字符。
file[123].txt # 匹配 file1.txt, file2.txt, file3.txt
三、常见模式示例
以下是一些针对 Java/Spring Boot 项目的典型 .gitignore
示例:
# Compiled class files
*.class
# Log files
*.log
logs/
# IDE specific files
.idea/
*.iml
# Maven target directory
target/
# OS-specific files
.DS_Store
Thumbs.db
# JVM crash logs
hs_err_pid*
# HTTP Client requests (IntelliJ IDEA)
.httpRequests/
四、注意事项
- 已追踪文件:如果一个文件已经被 Git 跟踪了,添加到
.gitignore
后并不会自动停止跟踪。需要先从索引中移除该文件(但保留本地副本),例如使用命令git rm --cached <filename>
。 - 全局忽略:可以通过设置全局
.gitignore
来忽略跨项目通用的文件,例如编辑器生成的备份文件等。使用命令git config --global core.excludesfile ~/.gitignore_global
来设置全局忽略文件。 - 测试忽略规则:可以使用
git check-ignore -v <path/to/file>
命令来查看某个文件是否被.gitignore
规则所忽略。
评论区