本文档涵盖了 JetBrains 系列集成开发环境 (IDE) 特定的 gitignore 模式和配置,包括 IntelliJ IDEA、PyCharm、WebStorm、Android Studio 等。它解释了在使用 JetBrains IDE 时应从版本控制中排除哪些文件和目录,以及为何需要这些排除项。
有关 Visual Studio 和 .NET 相关的 gitignore 模式,请参阅 Visual Studio 和 .NET。有关 Eclipse 特定的 gitignore 模式,请参阅 Eclipse 和 Java 开发。
JetBrains 为不同的编程语言和开发环境提供了一套专业的 IDE。本文档中讨论的 gitignore 模式适用于所有这些 IDE,因为它们共享通用的架构和文件结构。
来源:Global/JetBrains.gitignore1-2
典型的 JetBrains 项目包含几个应该从版本控制中排除的目录和文件。.idea/ 目录包含大部分 IDE 特定的配置。
来源:Global/JetBrains.gitignore4-77
JetBrains gitignore 模式可按用途分类
| 类别 | 描述 | 常见模式 |
|---|---|---|
| 用户特定文件 | 每个开发人员特有的设置和偏好 | .idea/**/workspace.xml、.idea/**/tasks.xml、.idea/**/dictionaries |
| 敏感文件 | 数据库配置和凭据 | .idea/**/dataSources/、.idea/**/dataSources.local.xml |
| 高频更改文件 | 频繁更改但不会影响功能的文件 | .idea/**/uiDesigner.xml、.idea/**/dynamic.xml |
| 构建输出 | 编译后的代码和构建工件 | out/、cmake-build-*/ |
| 项目文件 | 可能导致开发人员之间冲突的项目配置文件 | *.iws、*.ipr、*.iml |
| 插件文件 | IDE 插件生成的文件 | .idea_modules/、.idea/httpRequests、.idea/sonarlint/ |
| Android 特有 | Android Studio 特有的文件 | .idea/caches/build_file_checksums.ser、*.apk |
来源:Global/JetBrains.gitignore4-77 Android.gitignore11-23
这些文件存储个人开发者的偏好,不应在团队成员之间共享。
.idea/**/workspace.xml # Personal workspace layout
.idea/**/tasks.xml # Task tracking information
.idea/**/usage.statistics.xml # Usage statistics
.idea/**/dictionaries # Custom dictionaries
.idea/**/shelf # Shelved changes
将这些文件包含在版本控制中会在多个开发者处理同一项目时导致不必要的冲突。
来源:Global/JetBrains.gitignore4-9
这些文件包含敏感信息或频繁更改
.idea/**/dataSources/ # Database configurations
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml # Local database connection settings
.idea/**/sqlDataSources.xml # SQL data source metadata
.idea/**/aws.xml # AWS credentials and settings
.idea/**/dynamic.xml # Dynamic configurations
.idea/**/uiDesigner.xml # UI Designer configurations
.idea/**/dbnavigator.xml # Database navigator settings
这些文件通常包含凭据、本地路径,或者会频繁更改而不影响项目功能。
来源:Global/JetBrains.gitignore11-24
JetBrains IDE 会生成各种应被排除的构建相关文件。
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Build output
out/ # IntelliJ output directory
cmake-build-*/ # CMake build directories
# Android build
*.apk # Android application package files
.cxx/ # C/C++ build output
.externalNativeBuild/ # External native build output
这些文件会在构建过程中重新生成,将其包含在版本控制中会导致不必要的膨胀和冲突。
来源:Global/JetBrains.gitignore26-54 Android.gitignore11-16
项目和模块文件存储的配置可能因开发人员而异。
使用 Gradle 或 Maven 并启用自动导入时,应排除其他模块文件。
# Auto-import related files (commented in the template, uncomment if using auto-import)
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
来源:Global/JetBrains.gitignore30-41 Global/JetBrains.gitignore50
JetBrains IDE 支持广泛的插件,其中许多会生成应被排除的文件。
| 插件 | 要排除的文件 | 目的 |
|---|---|---|
| Mongo Explorer | .idea/**/mongoSettings.xml | MongoDB 连接设置 |
| SBT | .idea_modules/ | SBT 构建工具模块文件 |
| JIRA | atlassian-ide-plugin.xml | JIRA 集成设置 |
| Cursive Clojure | .idea/replstate.xml | Clojure REPL 状态 |
| SonarLint | .idea/sonarlint/ | 代码质量分析数据 |
| HTTP Client | .idea/httpRequests | REST 客户端请求历史 |
| Crashlytics | com_crashlytics_export_strings.xml、crashlytics.properties 等。 | 崩溃报告配置 |
来源:Global/JetBrains.gitignore46-74
Android Studio 基于 IntelliJ IDEA,但包含应被排除的额外 Android 特有文件。
# Android-specific
*.apk # Android application packages
output.json # Build output metadata
.idea/caches/build_file_checksums.ser # Build cache checksums
captures/ # Performance captures
*.hprof # Heap profile files
# Android configuration
local.properties # SDK location (machine-specific)
misc.xml # Miscellaneous settings
deploymentTargetDropDown.xml # Deployment target configurations
render.experimental.xml # Experimental rendering options
# Security-related
*.jks # Java keystore files
*.keystore # Android keystore files
google-services.json # Google API configuration
基础模板:始终从标准的 JetBrains gitignore 模板开始,该模板涵盖了大多数常见场景。
项目特定扩展:根据项目的技术栈,您可能需要包含其他模式。
团队一致性:确保所有团队成员使用相同的 gitignore 配置,以防止意外提交 IDE 文件。
初始设置:在首次提交之前应用 gitignore 模式,以避免日后清理存储库。
来源:Global/JetBrains.gitignore1-77 Android.gitignore11-23
对于涉及多种技术的项目,您可能需要将 JetBrains 模式与其他 gitignore 模板结合使用。