Git应该跟踪.idea文件夹中的哪些文件?

PHP*_*Pst 24 git ignore intellij-idea phpstorm

与Netbeans不同,在Jetbrains IDE中,与用户和团队相关的设置文件混合在同一个文件夹中,当你需要将它们推送到git时,它会变得棘手.

这些IDE有许多示例git ignore文件,git站点上有https://intellij-support.jetbrains.com/hc/articles/206544839页面.

然而,在使用它们一个月后,我们发现它更安全,实际上更方便.我的意思是忽略所有.idea文件并明确添加仅与团队相关的设置.(而不是添加所有并忽略一些).

开发人员可以共享的主要内容是代码风格配置.因此,使用IDE自动重新格式化选项,所有团队都将遵循一致的风格.

除此之外,问题是哪些其他文件被重新包含而不被忽略?为什么?

回答:我想出了这个:https://github.com/salarmehr/idea-gitignore

Mat*_*olm 25

Jetbrains有一些关于应该检入哪些文件的官方指导,以及根据您的使用情况可能无法检入哪些文件.根据该页面,您应该检查.idea目录中的所有文件,除了:

  • workspace.xml
  • tasks.xml

也许还有:

  • dictionary子目录中的xml文件

虽然具体答案可能取决于您团队的特定实践,但根据我的经验,遵循该指导通常会导致用户设置和共享项目配置的正确分离.

根据本指南,应该共享的文件的一些示例:

  • ant.xml,如果您使用Ant来构建项目,请将IDEA指向构建文件并配置应该用于构建的属性.
  • vcs.xml,它指定项目的版本控制配置
  • encodings.xml,它指定IDEA应如何处理项目中的文本文件
  • modules.xml,它将IDEA指向您项目的每个模块配置文件,这些文件也应该在您的VCS中共享.
  • runConfigurations子目录下的所有文件,告诉IDEA运行应用程序需要做什么
  • codeStyleSettings.xml正如您所提到的那样,这使您的整个团队在自动代码格式化方面处于同一页面

根据您团队的使用情况,可能会有更多或更少,但这些是一些最大的例子.

  • 我不能不同意.作为敏捷教练,我一直在指导开发团队超过12年,从来没有发现提交IDE项目信息是一个好主意.如果您提交Maven(或Gradle或其他)配置并确保在克隆/结帐后将其导入IDE,则不需要所有这些.**不要这样做!**不要提交与IDE相关的东西.唯一的例外可能是根据团队惯例的自动格式预设,但作为所有团队成员的单独文件夹中的可导入配置文件,而不是直接在`.idea`文件夹中. (2认同)

nin*_*inj 11

我根本不想检查.idea文件夹或.iml文件。

  • 如果您想共享编辑器样式,请考虑使用.editorconfig文件,JetBrains IDE 现在支持这些。
  • 对于其他事情,例如构建设置,您可以尝试依靠您的构建工具,例如使用mavengradle构建文件来进行特定设置。
  • 显然还有很多其他的事情不会被涵盖,但其中大部分都可以通过有据可查的约定来解决。


PHP*_*Pst 7

经过一番调查后,我想出了以下.idea/.gitignore文件:

# ignore all .idea files ...
*
# except  ...

# Version Control configuration
!vcs.xml

# how IDEA should treat the text files
!encodings.xml

# automatic code formatting
!codeStyleSettings.xml

# project specific words
!dictionaries

!copyrights
!misc.xml
!sqldialects.xml
Run Code Online (Sandbox Code Playgroud)

对于所有团队成员,上述文件实际上应该是相同的.

回答:我想出了这个:https://github.com/salarmehr/idea-gitignore


kri*_*aex 6

我同时使用 IDEA 和 Eclipse,但不使用 Netbeans。我从不提交任何项目文件,但确保我有一个 Maven 构建作为主要工具,然后我可以轻松地将 Maven 项目导入任何具有 Maven 支持的 IDE,并在我更改它后从 Maven 刷新。对于 Eclipse 和 IDEA,这非常有效。

对于我的所有项目,我的.gitignore文件如下所示:

# Eclipse
.settings/
.classpath
.project

# IntelliJ IDEA
.idea/
*.iml

# Maven
target/
Run Code Online (Sandbox Code Playgroud)

加上其他特定于项目的文件或目录。