gitignore配置规则详解

101 阅读1分钟

什么是 .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