.gitignore配置
备注
本文记录gemini提供的 .gitignore 模板文件,以备参考
在 macOS 环境下开发 Python、Ruby、Go、Node.js、Rust、Swift、Neovim/Vim 设置 .gitignore 配置文件 ~/.gitignore_global :
.gitignore 模板: ~/.gitignore_globalcat << 'EOF' > ~/.gitignore_global
# ==============================================================================
# macOS 系统及 Finder 专有元文件
# ==============================================================================
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
.AppleDouble
.LSOverride
# Icon headers for macOS folders
Icon?
# Thumbnails and file system metadata
Files-DS_Store
# ==============================================================================
# 编辑器与 IDE 配置 (Neovim, VS Code, JetBrains, Xcode)
# ==============================================================================
# Vim / Neovim 临时文件与 Swap
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
*.un~
Session.vim
.netrwhist
# VS Code 局部配置
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace
# JetBrains (PyCharm, RubyMine, GoLand 等)
.idea/
# Xcode / Apple 开发环境元数据与临时文件
*.xcodeproj/*
!*.xcodeproj/project.pbxproj
!*.xcodeproj/xcshareddata/
!*.xcworkspace/contents.xcworkspacedata
*.xcworkspace/*
.build/
DerivedData/
*.moved-aside
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/
*.xccheckout
*.mover-post-job-xcworkspace
# ==============================================================================
# Rust 语言环境
# ==============================================================================
# Cargo 编译与构建产物目录
/target/
target/
# Cargo 在根目录生成的构建日志与分析缓存
**/*.rs.bk
*.rlib
*.rmeta
# Cargo.lock 通常建议在 binary/app 项目中提交,但在全局层面上,
# 如果经常写小型实验/library项目,可以按需取消注释以下行:
# Cargo.lock
# ==============================================================================
# Swift / SwiftPM 开发环境
# ==============================================================================
# Swift Package Manager 构建输出目录
.build/
.swiftpm/
# CocoaPods / Carthage 产物 (如果涉及 iOS/macOS 混编)
Pods/
Frameworks/
Carthage/Build/
# Swift Playgrounds 缓存
*.playground/xcuserdata/
*.playground/timeline.xctimeline
# ==============================================================================
# Python 开发环境
# ==============================================================================
__pycache__/
*.py[cod]
*$py.class
*.so
# 虚拟环境 (Virtual Environments)
.venv/
venv/
ENV/
env/
.env
# 测试、构建与覆盖率产物
.pytest_cache/
.coverage
htmlcov/
.tox/
.mypy_cache/
.ruff_cache/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
# ==============================================================================
# Ruby / Rails 开发环境
# ==============================================================================
*.gem
*.rbc
/.config
/coverage/
/InstalledFiles
/pkg/
/spec/reports/
/spec/examples.txt
/test/tmp/
/test/version_tmp/
/tmp/
# Bundler 本地覆盖与部署缓存
/.bundle/
/vendor/bundle/
/vendor/gems/
# ==============================================================================
# Go (Golang) 开发环境
# ==============================================================================
# 编译二进制产物
*.exe
*.exe-e
*.bat
*.dll
*.so
*.dylib
# 测试与覆盖率输出
*.test
*.out
*.prof
# Go 依赖工具生成的文件
vendor/
# ==============================================================================
# Node.js / 前端开发环境
# ==============================================================================
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# ==============================================================================
# 环境与密钥文件(安全防泄漏)
# ==============================================================================
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
*.pem
*.key
EOF
# 确认 Git 使用全局过滤文件
git config --global core.excludesfile ~/.gitignore_global
说明
精确过滤 macOS 隐藏垃圾:不仅包含了
.DS_Store,还涵盖了 Apple 系统在卷(Volume)或移动硬盘上生成的.Trashes(回收站)、.Spotlight-V100(索引)以及._*(资源分叉文件)。工具链与缓存隔离:自动屏蔽 Python 的
__pycache__/.ruff_cache,Go 编译的二进制文件及.out,Ruby 的.bundle/vendor,以及 Neovim 的临时.swp/.un~撤销文件。安全防泄漏:全局拦截
.env、*.key和*.pem等敏感密钥文件,防止因一时疏忽将机密信息提交到 GitHub / GitLab 公开仓库。Rust 安全隔离
自动屏蔽 Rust 的构建产物目录
target/。Rust 在频繁编译时target/目录动辄占用数 GB 空间,全局屏蔽可以彻底规避误将编译缓存推送到 GitHub 的尴尬。屏蔽
*.rlib和*.rmeta等二进制中间库文件以及某些编辑器插件生成的备份文件(*.rs.bk)。
Swift & Xcode 专业规则
屏蔽 Xcode 专有的用户个人状态(
xcuserdata/,包含了你个人在 Xcode 里打的断点、展开的目录状态等,绝对不应该提交)。过滤 Swift Package Manager (SPM) 编译产生的
.build/和.swiftpm/缓存文件夹。精确保留了 Xcode 共享项目结构定义(
project.pbxproj和xcshareddata),保证如果以后创建了 Swift/macOS App 团队协作项目,共享的核心结构依然能正常被 Git 追踪。
参考
gemini