什么是 .gitignore?
.gitignore 是一个文本文件,用于告诉 Git 哪些文件或目录不应该被纳入版本控制系统。当您执行 git add 时,Git 会检查 .gitignore 中的规则,自动忽略指定的文件和目录。
文件位置
- •项目根目录:
项目/.gitignore(最常用) - •子目录:
项目/子目录/.gitignore(针对特定目录的规则) - •全局配置:
~/.gitignore_global(对所有项目生效)
语法规则
1. 基本模式
# 注释以 # 开头
*.log # 忽略所有 .log 文件
temp/ # 忽略整个 temp 目录
2. 路径匹配
# 忽略根目录的 config.ini
/config.ini
# 忽略所有目录中的 config.ini
config.ini
# 忽略 docs/ 目录下的 .tmp 文件
docs/*.tmp
3. 通配符
# 忽略所有 .a 结尾的文件
*.a
# 忽略所有以 ~ 结尾的文件
*~
# 忽略所有 .txt 文件,但不包括 important.txt
*.txt
!important.txt
4. 目录匹配
# 忽略所有 build/ 目录
build/
# 忽略所有目录下的 build/ 文件夹
**/build/
# 忽略 foo/ 目录下的所有 .html 文件
foo/**/*.html
5. 转义特殊字符
# 忽略名为 "!important" 的文件
!important
gitignore配置参考
# Vue、React build output
dist/
build/
node_modules/
# Maven
target/
!.mvn/wrapper/maven-wrapper.jar
.flattened-pom.xml
# IntelliJ IDEA
.idea/
*.iws
*.iml
*.ipr
# Eclipse
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
# NetBeans
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
# Logs
logs
*.log
# OS Specific Files
.DS_Store
# Editor Directories and Files
.vscode/
!.vscode/extensions.json
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
# Dependency Directories
node_modules
dist-ssr
# Lock Files
package-lock.json
yarn.lock
# Local Environment Files
*.local