Git 应该跟踪 .idea 文件夹中的哪些文件?
Which files in .idea folder should be tracked by Git?
与 Netbeans 不同,在 Jetbrains IDEs 中,与用户和团队相关的设置文件混合在同一个文件夹中,这使得在需要将它们推送到 git 时变得棘手。
git 站点上的这些 IDE 和 https://intellij-support.jetbrains.com/hc/articles/206544839 页面有许多示例 git 忽略文件。
然而,在使用了几个月之后,我们发现反过来更安全,实际上更方便。我的意思是忽略所有 .idea
文件并明确仅添加与团队相关的设置。 (而不是全部添加并忽略一些)。
开发人员之间可以共享的主要内容是代码样式配置。因此,通过使用 IDE 自动重新格式化选项,所有团队都将遵循一致的风格。
除此之外,问题是还有哪些文件建议包含而不是忽略?为什么?
建议不要提交所有 .idea
文件夹,因为它用于配置。喜欢 *.iml
文件。
如果我使用 Netbeans 而不是 Intellij,我不需要这些配置文件。它没有用,而且可能有冲突的危险。
Jetbrains 有 some official guidance 哪些文件 不应该 签入,哪些文件 可能不应该 签入,取决于您的使用情况。根据该页面,您应该签入 .idea
目录中的所有文件,除了:
workspace.xml
tasks.xml
可能还有:
dictionary
子目录中的 xml 个文件
虽然具体答案可能取决于您团队的具体做法,但根据我的经验,遵循该指南通常可以正确分离用户设置和共享项目配置。
根据本指南,应该共享的一些文件示例:
ant.xml
,如果您使用 Ant 构建项目,会将 IDEA 指向您的构建文件并配置应该用于构建的属性。
vcs.xml
,指定项目的版本控制配置
encodings.xml
,指定 IDEA 应如何处理项目中的文本文件
modules.xml
,它将 IDEA 指向您项目的每个模块配置文件,这些文件也应该在您的 VCS 中共享。
runConfigurations
子目录下的所有文件,它告诉 IDEA 它需要对 运行 您的应用程序做什么
codeStyleSettings.xml
,正如您提到的,在自动代码格式化方面让您的整个团队达成一致
根据您团队的使用情况,可能会有或多或少,但这些是一些最典型的例子。
我同时使用 IDEA 和 Eclipse,但不使用 Netbeans。我 从不 提交任何项目文件,但确保我有一个 Maven 构建作为主要工具,然后我可以轻松地将 Maven 项目导入到任何 IDE 支持 Maven 的项目中,并且更改后从 Maven 刷新。对于 Eclipse 和 IDEA,这非常有效。
我的 .gitignore 文件对于我所有的项目都是这样的:
# Eclipse
.settings/
.classpath
.project
# IntelliJ IDEA
.idea/
*.iml
# Maven
target/
加上其他项目特定的文件或目录。
我不想签入 .idea
文件夹或 .iml
文件。
- 如果您想共享编辑器样式,请考虑使用
.editorconfig
文件,JetBrains IDE 现在支持这些。
- 对于其他事情,例如构建设置,您可以尝试依靠构建工具,例如使用
maven
或 gradle
构建文件来进行特定设置。
- 显然还有很多其他的事情不会被涵盖,但大多数都可以通过有据可查的约定来解决。
经过一番调查,我想到了https://github.com/salarmehr/idea-gitignore
#### ignore all .idea files ...
*
#### except
# Version Control configuration for your project
!vcs.xml
# how IDEA should treat the text files in your project
!encodings.xml
# automatic code formatting
!codeStyleSettings.xml
# project specific words
!dictionaries
!copyrights
!misc.xml
!sqldialects.xml
所有团队成员的上述文件实际上应该是相同的。
与 Netbeans 不同,在 Jetbrains IDEs 中,与用户和团队相关的设置文件混合在同一个文件夹中,这使得在需要将它们推送到 git 时变得棘手。
git 站点上的这些 IDE 和 https://intellij-support.jetbrains.com/hc/articles/206544839 页面有许多示例 git 忽略文件。
然而,在使用了几个月之后,我们发现反过来更安全,实际上更方便。我的意思是忽略所有 .idea
文件并明确仅添加与团队相关的设置。 (而不是全部添加并忽略一些)。
开发人员之间可以共享的主要内容是代码样式配置。因此,通过使用 IDE 自动重新格式化选项,所有团队都将遵循一致的风格。
除此之外,问题是还有哪些文件建议包含而不是忽略?为什么?
建议不要提交所有 .idea
文件夹,因为它用于配置。喜欢 *.iml
文件。
如果我使用 Netbeans 而不是 Intellij,我不需要这些配置文件。它没有用,而且可能有冲突的危险。
Jetbrains 有 some official guidance 哪些文件 不应该 签入,哪些文件 可能不应该 签入,取决于您的使用情况。根据该页面,您应该签入 .idea
目录中的所有文件,除了:
workspace.xml
tasks.xml
可能还有:
dictionary
子目录中的 xml 个文件
虽然具体答案可能取决于您团队的具体做法,但根据我的经验,遵循该指南通常可以正确分离用户设置和共享项目配置。
根据本指南,应该共享的一些文件示例:
ant.xml
,如果您使用 Ant 构建项目,会将 IDEA 指向您的构建文件并配置应该用于构建的属性。vcs.xml
,指定项目的版本控制配置encodings.xml
,指定 IDEA 应如何处理项目中的文本文件modules.xml
,它将 IDEA 指向您项目的每个模块配置文件,这些文件也应该在您的 VCS 中共享。runConfigurations
子目录下的所有文件,它告诉 IDEA 它需要对 运行 您的应用程序做什么codeStyleSettings.xml
,正如您提到的,在自动代码格式化方面让您的整个团队达成一致
根据您团队的使用情况,可能会有或多或少,但这些是一些最典型的例子。
我同时使用 IDEA 和 Eclipse,但不使用 Netbeans。我 从不 提交任何项目文件,但确保我有一个 Maven 构建作为主要工具,然后我可以轻松地将 Maven 项目导入到任何 IDE 支持 Maven 的项目中,并且更改后从 Maven 刷新。对于 Eclipse 和 IDEA,这非常有效。
我的 .gitignore 文件对于我所有的项目都是这样的:
# Eclipse
.settings/
.classpath
.project
# IntelliJ IDEA
.idea/
*.iml
# Maven
target/
加上其他项目特定的文件或目录。
我不想签入 .idea
文件夹或 .iml
文件。
- 如果您想共享编辑器样式,请考虑使用
.editorconfig
文件,JetBrains IDE 现在支持这些。 - 对于其他事情,例如构建设置,您可以尝试依靠构建工具,例如使用
maven
或gradle
构建文件来进行特定设置。 - 显然还有很多其他的事情不会被涵盖,但大多数都可以通过有据可查的约定来解决。
经过一番调查,我想到了https://github.com/salarmehr/idea-gitignore
#### ignore all .idea files ...
*
#### except
# Version Control configuration for your project
!vcs.xml
# how IDEA should treat the text files in your project
!encodings.xml
# automatic code formatting
!codeStyleSettings.xml
# project specific words
!dictionaries
!copyrights
!misc.xml
!sqldialects.xml
所有团队成员的上述文件实际上应该是相同的。