VVLL.net

.gitignore 文件的详细说明

日期:2024-08-22 09:58:31

.gitignore 文件的详细说明

.gitignore 文件用于告诉 Git 哪些文件或目录不应该被版本控制。以下是 .gitignore 文件的详细说明和一些常见的使用示例。

基本语法

  1. 注释:以 # 开头的行是注释。
    # 这是一个注释
    
  2. 忽略文件:直接写文件名或路径。
    debug.log
    
  3. 忽略目录:在目录名后面加上 /
    temp/
    
  4. 通配符
    • * 匹配零个或多个字符。
    • ? 匹配单个字符。
    • [abc] 匹配方括号内的任意一个字符。
    *.log   # 忽略所有 .log 文件
    build/  # 忽略 build 目录
    
  5. 递归匹配:用 ** 表示递归匹配所有子目录。
    **/temp/*  # 忽略所有 temp 目录中的文件
    
  6. 取反:在规则前加 ! 表示例外规则。
    !important.log  # 不忽略 important.log 文件
    

常见示例

一般用途

# 忽略所有的 .log 文件
*.log

# 忽略临时文件
*.tmp

# 忽略 node_modules 目录
node_modules/

# 忽略编译生成的文件
build/
dist/
out/

# 忽略操作系统产生的临时文件
.DS_Store
Thumbs.db

# 忽略 IDE 产生的文件
.idea/
.vscode/
*.suo
*.user
*.userosscache
*.sln.docstates

Python 项目

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# Distribution / packaging
.Python
env/
venv/
ENV/
env.bak/
venv.bak/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/
cover/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# Celery beat schedule file
celerybeat-schedule

# dotenv
.env
.env.*

Java 项目

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

Node.js 项目

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Snowpack dependency directory (https://snowpack.dev/)
web_modules/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test

# parcel-bundler cache (https://parceljs.org/)
.cache

# Next.js build output
.next

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# public

# vuepress build output
.vuepress/dist

# vuepress v2.x temp and cache directory
.temp

# Docusaurus cache and generated files
.docusaurus
.build

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

创建 .gitignore 文件

  1. 在项目根目录创建 .gitignore 文件
    touch .gitignore
    
  2. 打开 .gitignore 文件并添加需要忽略的文件和目录
  3. 保存 .gitignore 文件并提交更改
    git add .gitignore
    git commit -m "Add .gitignore file"
    

在线生成 .gitignore 文件

可以使用 gitignore.io 网站,根据项目类型生成 .gitignore 文件。输入项目类型如 python, java, node 等,即可生成相应的 .gitignore 内容。

希望这些信息能帮助你更好地使用 .gitignore 文件来管理项目中的文件和目录。

标签