菜单

JetBrains IDE

相关源文件

目的与范围

本文档涵盖了 JetBrains 系列集成开发环境 (IDE) 特定的 gitignore 模式和配置,包括 IntelliJ IDEA、PyCharm、WebStorm、Android Studio 等。它解释了在使用 JetBrains IDE 时应从版本控制中排除哪些文件和目录,以及为何需要这些排除项。

有关 Visual Studio 和 .NET 相关的 gitignore 模式,请参阅 Visual Studio 和 .NET。有关 Eclipse 特定的 gitignore 模式,请参阅 Eclipse 和 Java 开发

JetBrains IDE 概述

JetBrains 为不同的编程语言和开发环境提供了一套专业的 IDE。本文档中讨论的 gitignore 模式适用于所有这些 IDE,因为它们共享通用的架构和文件结构。

来源:Global/JetBrains.gitignore1-2

JetBrains 项目结构和忽略模式

典型的 JetBrains 项目包含几个应该从版本控制中排除的目录和文件。.idea/ 目录包含大部分 IDE 特定的配置。

来源:Global/JetBrains.gitignore4-77

JetBrains Gitignore 模式的类别

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.xmlMongoDB 连接设置
SBT.idea_modules/SBT 构建工具模块文件
JIRAatlassian-ide-plugin.xmlJIRA 集成设置
Cursive Clojure.idea/replstate.xmlClojure REPL 状态
SonarLint.idea/sonarlint/代码质量分析数据
HTTP Client.idea/httpRequestsREST 客户端请求历史
Crashlyticscom_crashlytics_export_strings.xmlcrashlytics.properties 等。崩溃报告配置

来源:Global/JetBrains.gitignore46-74

Android Studio 特有模式

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

来源:Android.gitignore1-33

JetBrains Gitignore 的最佳实践

  1. 基础模板:始终从标准的 JetBrains gitignore 模板开始,该模板涵盖了大多数常见场景。

  2. 项目特定扩展:根据项目的技术栈,您可能需要包含其他模式。

    • 对于 Android 项目,请包含 Android 特有的模式。
    • 对于 Gradle/Maven 项目,请考虑取消注释自动导入排除项。
  3. 团队一致性:确保所有团队成员使用相同的 gitignore 配置,以防止意外提交 IDE 文件。

  4. 初始设置:在首次提交之前应用 gitignore 模式,以避免日后清理存储库。

来源:Global/JetBrains.gitignore1-77 Android.gitignore11-23

对于涉及多种技术的项目,您可能需要将 JetBrains 模式与其他 gitignore 模板结合使用。

来源:Global/JetBrains.gitignore1-2