Intellij Idea 9/10,要检查(或不检入)源控件的文件夹是什么?

ben*_*rre 113 version-control intellij-idea

我们的团队刚刚从Netbeans转移到Intellij 9 Ultimate,需要知道通常应该从源代码控制中排除哪些文件/文件夹,因为它们不是"工作站可移植",即:它们引用仅存在于一个用户计算机上的路径.

据我所知,Intellij想要忽略大部分.idea项目,包括

.idea/artifacts/*
.idea/inspectionProfiles/*
.idea/copyright/*
.idea/dataSources.ids
.idea/dataSources.xml
.idea/workspace.xml
Run Code Online (Sandbox Code Playgroud)

但是,它似乎想要检查每个模块的根目录中存在的.iml文件.

我最初通过命令行检查整个.idea目录,这显然不知道Idea应该忽略什么.通常会忽略整个.idea目录吗?

Cra*_*der 97

我们有一篇关于这个问题的FAQ文章.

默认情况下,所有最新的IDE版本都使用[.idea]格式.以下是您需要分享的内容:

  • 项目根目录下的.idea目录下的所有文件,除了存储用户特定设置的workspace.xmltasks.xml文件
  • 所有.iml模块文件都可以位于不同的模块目录中(适用于IntelliJ IDEA)

分享以下内容时要小心:

  • 产生签名版本的 Android工件(将包含密钥库密码)
  • 在IDEA 13及更早版本的dataSources.ids中,datasources.xml可以包含数据库密码.IDEA 14 解决了这个问题.

您可以考虑不要分享以下内容:

  • 基于GradleMaven的项目的.iml文件,因为这些文件将在导入时生成
  • gradle.xml文件,请参阅此讨论
  • 用户词典文件夹(以避免在其他开发人员具有相同名称时发生冲突)
  • 它们是从Gradle或Maven项目生成的.idea/libraries下的XML文件

.idea directory是旧.ipr(Idea Project)文件的替代品,如果要在用户之间共享项目,则需要共享.idea文件夹(常见问题解答中提到的例外)和所有.iml文件.

  • @CrazyCoder(+1)如果你们将项目特定文件和用户特定文件放在不同的目录中,它会让我们的生活更轻松. (68认同)
  • 对于FAQ而言,这是一个非常糟糕的借口.这是人们提问的重要线索.一个项目的例子.gitignore怎么样? (27认同)
  • 令人难以置信/不可能在同一个文件夹中会有"某些是,有些不是" - 四年之后这仍然是同样的疯狂吗?谢谢 (12认同)
  • 评论一个旧的线程,但FAQ的共享整个.idea文件夹(workspace.xml和tasks.xml除外)的方法是有问题的,因为各种文件在机器之间和会话之间发生变化.真正让我感到困惑的是:Mac上的Python/Library位于不同Mac上的两个不同位置,因此pycharm.xml会在周围跳跃. (3认同)
  • 是的,它是最新的,项目文件没有重大变化. (2认同)

why*_*ite 40

请参阅Github的JetBrains.gitignore文件,以获得要忽略的文件的更新列表.


Tom*_*sen 5

您可能会发现这篇文章很有趣:在IntelliJ IDEA .IPR和.IWS文件上合并

这似乎断定你应该添加的所有文件,除了:workspace.xml,dataSources.xml,sqlDataSources.xmldynamic.xml.答案的重点是让文件不会因打开编辑器或进行特定的更改而改变.


Cod*_*ber 5

不是问题的确切答案,但这里有样本.gitignore文件,包括JetBrains的一个文件,其中包括Intellij.


Ani*_*nil 5

我正在使用 PHPStorm。

这是您的示例片段.gitignore

# Ignore the following 2 PHPStorm files only workspace and tasks file
**/.idea/workspace.xml
**/.idea/tasks.xml
Run Code Online (Sandbox Code Playgroud)

该目录中的所有其他文件.idea都应提交到您的存储库。

例如:(提交.idea目录中的其他所有内容)

new file:   .idea/.name
new file:   .idea/encodings.xml
new file:   .idea/framework.iml
...
Run Code Online (Sandbox Code Playgroud)

文档:如何在版本控制系统下管理项目

以下是您需要分享的内容:

项目根目录中.idea 目录下的所有文件,除了存储用户特定设置的workspace.xml和tasks.xml文件

所有可以位于不同模块目录中的.iml模块文件(适用于IntelliJ IDEA)

所以基本上,提交除workspace.xml和之外的所有内容tasks.xml