本文档提供了针对 Web 开发技术、框架和工具的 gitignore 模板的概述。这些模板通过将依赖项目录、构建工件、环境配置和缓存等非必需文件排除在版本控制之外,帮助 Web 开发人员维护整洁的代码库。
有关特定 Web 技术的详细信息,请参阅
有关特定于 Web 开发的通用编程语言模板,请参阅编程语言模板。
Web 开发涉及广泛的技术,每种技术都会生成特定文件,这些文件通常应排除在版本控制之外。gitignore 存储库为最常见的 Web 开发框架和工具提供了模板。
来源:Node.gitignore Rails.gitignore Sass.gitignore Typo3.gitignore
Web 开发项目通常会生成几种文件类别,这些文件应排除在版本控制之外。下表总结了 Web 开发 gitignore 模板中最常见的模式
| 类别 | 描述 | 常见模式 | 示例 |
|---|---|---|---|
| 依赖项 | 外部库和包 | node_modules/, vendor/, bower_components/ | Node.gitignore41-43 Rails.gitignore33-34 |
| 构建产物 | 生成的文件和分发文件 | dist/, build/, .next/, .nuxt/ | Node.gitignore86-92 |
| 环境变量 | 包含敏感数据的配置 | .env*, config/master.key | Node.gitignore75-80 Rails.gitignore20-30 |
| 缓存目录 | 各种缓存系统 | .cache/, .sass-cache/ | Node.gitignore82-84 Sass.gitignore1 |
| 日志 | 调试和错误日志 | *.log, npm-debug.log* | Node.gitignore1-8 Rails.gitignore14-18 |
| 覆盖率报告 | 测试覆盖数据 | coverage/, .nyc_output/ | Node.gitignore22-27 Rails.gitignore8 |
| 编辑器/IDE 文件 | 特定于编辑器的配置 | .vscode-test/ | Node.gitignore128-129 |
来源:Node.gitignore Rails.gitignore Ruby.gitignore Sass.gitignore Typo3.gitignore
不同的 Web 开发生态系统使用特定的构建工具和包管理器,每种工具都会生成自己的文件集,这些文件通常应排除在版本控制之外。下图说明了主要 Web 框架及其构建工件之间的关系
来源:Node.gitignore1-8 Node.gitignore41-43 Node.gitignore50-52 Rails.gitignore14-18 Rails.gitignore33-34 Rails.gitignore56-64 Typo3.gitignore7-23 Sass.gitignore
由于工具和框架的多样化生态系统,Node.js 项目拥有广泛的 gitignore 要求。主要模式包括:
node_modules/, jspm_packages/, bower_components/.next, .nuxt, dist/.npm, .cache/, .parcel-cache/来源: Node.gitignore41-43 Node.gitignore86-92 Node.gitignore82-84 Node.gitignore100-115
Rails 应用程序会生成几种应被排除的文件类型
/.bundle, /vendor/bundle/db/*.sqlite3*/public/assets, /public/packsconfig/master.key, config/initializers/secret_token.rb来源: Rails.gitignore4-6 Rails.gitignore20-25 Rails.gitignore33-34 Rails.gitignore56-64
TYPO3 等 PHP 框架具有独特的排除模式
/typo3temp/, /typo3conf/temp_*/uploads/, /fileadmin/user_upload//typo3, /typo3_srcWeb 应用程序通常使用环境变量进行配置,特别是对于 API 密钥和数据库凭据等敏感信息。这些绝不应提交到版本控制中。
| 框架 | 环境文件 | 密钥 | 目的 |
|---|---|---|---|
| Node.js | .env, .env.local, .env.development.local | 不适用 | 环境配置 |
| Rails | .env, .env*.local | config/master.key, config/secrets.yml | 凭证加密 |
| PHP/TYPO3 | 不适用 | /typo3conf/ENABLE_INSTALL_TOOL | 安装配置 |
来源: Node.gitignore75-80 Rails.gitignore20-30 Typo3.gitignore11
现代 Web 开发涉及预处理和打包资源,生成应被排除的中间文件
.sass-cache/, *.css.map, *.sass.map, *.scss.map.rpt2_cache/, .rts2_cache_*/.cache/, .parcel-cache/, .grunt这些文件要么在构建过程中被重新创建,要么仅对本地开发有用。
来源: Sass.gitignore Node.gitignore29-30 Node.gitignore60-64 Node.gitignore82-84
Web 开发项目经常生成应被排除的测试报告和覆盖率数据
coverage/, .nyc_output//coverage/, /spec/tmp, rerun.txt*.lcov, spec/reports/来源: Node.gitignore22-27 Rails.gitignore8-9 Ruby.gitignore4-10
以下图表说明了 gitignore 模板如何与典型的 Web 开发工作流程集成
来源: Node.gitignore41-43 Rails.gitignore33-34 Node.gitignore75-80 Rails.gitignore20-30 Node.gitignore86-92 Rails.gitignore56-64 Node.gitignore22-27
当为 Web 开发项目使用提供的模板时
.env 文件及类似配置文件package-lock.json、yarn.lock、Gemfile.lock)来源: Node.gitignore Rails.gitignore Ruby.gitignore
Web 开发 gitignore 模板通过排除依赖项、构建产物、环境配置和临时文件,提供了保持仓库整洁的关键模式。通过确保只跟踪必需的源代码,这些模板有助于在 Web 开发项目中维护高效的版本控制实践。
有关特定 Web 技术的更详细信息,请参阅 Node.js 和 JavaScript 框架、Ruby on Rails 和 PHP 框架和 CMS 的专用页面。