本文档提供了关于集成开发环境(IDE)、代码编辑器和其他开发工具的 gitignore 模板的全面信息。这些模板有助于开发人员将 IDE 特定的文件和目录排除在版本控制之外,确保代码库保持干净,并专注于实际的项目代码,而不是工具生成的文件。
有关特定编程语言模板的信息,请参阅 编程语言模板。有关移动开发特定模板的信息,请参阅 移动开发模板。
开发环境模板是 gitignore 存储库中最重要的类别之一。这些模板会排除由开发工具自动生成的文件和目录,这些文件和目录通常不应提交到版本控制中。
来源: VisualStudio.gitignore Global/JetBrains.gitignore Global/Eclipse.gitignore Global/SublimeText.gitignore Global/Vim.gitignore Global/Emacs.gitignore Unity.gitignore
开发环境生成了多类文件,这些文件通常会被排除在版本控制之外。
来源: VisualStudio.gitignore6-11 Global/JetBrains.gitignore4-9 Global/Eclipse.gitignore1-11 Global/SublimeText.gitignore6-8 Global/Vim.gitignore1-7 Global/Emacs.gitignore1-9 Unity.gitignore5-12
| 文件类别 | 排除原因 | 示例模式 |
|---|---|---|
| 用户特定设置 | 包含个人偏好和本地路径 | *.user, .idea/**/workspace.xml |
| 构建输出 | 可重新生成的编译代码 | bin/, obj/, out/ |
| 缓存文件 | 为提高性能而生成,易于重新创建 | .vs/, .gradle/ |
| 工作区状态 | 包含会话特定信息 | *.sublime-workspace, .vscode/* |
| 调试产物 | 包含调试/测试信息 | TestResults/, [Dd]ebug/ |
| 日志文件 | VCS 中不需要的诊断信息 | *.log, *.svclog |
来源: VisualStudio.gitignore6-101 Global/JetBrains.gitignore4-77 Global/Eclipse.gitignore1-60 Unity.gitignore5-74
Visual Studio 是最全面的 IDE 之一,它会生成大量应排除在版本控制之外的文件。Visual Studio 的模板是仓库中最详尽的。
主要排除的模式包括
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# Build results
[Dd]ebug/
[Rr]elease/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio cache/options
.vs/
来源: VisualStudio.gitignore6-36
JetBrains 生产各种 IDE,包括 IntelliJ IDEA、PyCharm、WebStorm 和 Rider。其模板涵盖了所有这些工具的常见模式。
主要排除的模式包括
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# Gradle and Maven
.idea/**/gradle.xml
.idea/**/libraries
# File-based project format
*.iws
# IntelliJ
out/
来源: Global/JetBrains.gitignore4-54
Eclipse 是 Java 和其他语言的流行 IDE。其模板会排除工作区配置文件和构建输出。
主要排除的模式包括
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
.settings/
.loadpath
.recommenders
# Java annotation processor
.factorypath
来源: Global/Eclipse.gitignore1-29 Java.gitignore1-24
Unity 的模板专注于游戏开发,处理大量生成的文件和资源。
主要排除的模式包括
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/
# Memory and performance data
/[Mm]emoryCaptures/
/[Rr]ecordings/
Sublime Text、Vim 和 Emacs 等文本编辑器有各自的 gitignore 模板,其中包含特定于每个编辑器操作的模式。
来源: Global/SublimeText.gitignore1-31 Global/Vim.gitignore1-19 Global/Emacs.gitignore1-48
开发环境模板通常需要与平台特定模板(如操作系统模板)结合使用,以实现全面的覆盖。
操作系统会生成可能干扰开发的文件,应予以排除
| 操作系统 | 主要排除的文件 | 目的 |
|---|---|---|
| Windows | Thumbs.db, *.lnk, Desktop.ini | 系统生成的文件 |
| macOS | .DS_Store, .AppleDouble, ._* | Finder 元数据 |
| Linux | .directory, *~ | 文件浏览器和临时文件 |
来源: Global/Windows.gitignore1-24 Global/macOS.gitignore1-27
在设置项目时,开发人员应根据
来源: VisualStudio.gitignore Global/JetBrains.gitignore Global/Eclipse.gitignore Unity.gitignore Python.gitignore Java.gitignore Global/Windows.gitignore Global/macOS.gitignore
尽管存在差异,开发环境在应被排除的文件方面存在一些共同的类别
| 类别 | Visual Studio | JetBrains | Eclipse | Unity |
|---|---|---|---|---|
| 用户设置 | *.user, *.suo | .idea/**/workspace.xml | .settings/ | /[Uu]ser[Ss]ettings/ |
| 构建输出 | bin/, obj/ | out/ | bin/ | /[Bb]uild/, /[Bb]uilds/ |
| 缓存文件 | .vs/ | .idea/caches/ | .cache-main | /[Ll]ibrary/ |
| 日志 | *.log, [Ll]og/ | *.log | 不适用 | /[Ll]ogs/ |
| 调试数据 | [Dd]ebug/, *.pdb | 不适用 | 不适用 | /[Mm]emoryCaptures/ |
| 工作区状态 | *.sln.docstates | .idea/**/tasks.xml | .metadata | *.pidb |
| 生成的代码 | Generated Files/ | contentModel.xml | .apt_generated/ | /[Aa]ssets/[Ss]treamingAssets/aa/* |
来源: VisualStudio.gitignore6-400 Global/JetBrains.gitignore4-77 Global/Eclipse.gitignore1-60 Unity.gitignore5-74
开发环境模板对于通过排除特定于工具的文件来维护干净的存储库至关重要。通过为您的开发环境、语言和操作系统选择合适的模板,您可以确保只有相关的源代码被跟踪在版本控制中。
有关特定开发环境的详细信息,请参阅子页面