我们的团队刚刚从Netbeans转移到Intellij 9 Ultimate,需要知道通常应该从源代码控制中排除哪些文件/文件夹,因为它们不是"工作站可移植",即:它们引用仅存在于一个用户计算机上的路径.
据我所知,Intellij想要忽略大部分.idea项目,包括
.idea/artifacts/* .idea/inspectionProfiles/* .idea/copyright/* .idea/dataSources.ids .idea/dataSources.xml .idea/workspace.xml
但是,它似乎想要检查每个模块的根目录中存在的.iml文件.
我最初通过命令行检查整个.idea目录,这显然不知道Idea应该忽略什么.通常会忽略整个.idea目录吗?
我们有一篇关于这个问题的FAQ文章.
默认情况下,所有最新的IDE版本都使用[.idea]格式.以下是您需要分享的内容:
项目根目录下的.idea目录下的所有文件,除了存储用户特定设置的workspace.xml和tasks.xml文件
所有.iml模块文件都可以位于不同的模块目录中(适用于IntelliJ IDEA)
分享以下内容时要小心:
产生签名版本的 Android工件(将包含密钥库密码)
在IDEA 13及更早版本的dataSources.ids中,datasources.xml可以包含数据库密码.IDEA 14 解决了这个问题.
您可以考虑不要分享以下内容:
基于Gradle或Maven的项目的.iml文件,因为这些文件将在导入时生成
gradle.xml文件,请参阅此讨论
用户词典文件夹(以避免在其他开发人员具有相同名称时发生冲突)
它们是从Gradle或Maven项目生成的.idea/libraries下的XML文件
.idea
directory是旧.ipr(Idea Project)文件的替代品,如果要在用户之间共享项目,则需要共享.idea文件夹(常见问题解答中提到的例外)和所有.iml文件.
请参阅Github的JetBrains.gitignore文件,以获得要忽略的文件的更新列表.
您可能会发现这篇文章很有趣:在IntelliJ IDEA .IPR和.IWS文件上合并
这似乎断定你应该添加的所有文件,除了:workspace.xml
,dataSources.xml
,sqlDataSources.xml
和dynamic.xml
.答案的重点是让文件不会因打开编辑器或进行特定的更改而改变.
不是问题的确切答案,但这里有样本.gitignore文件,包括JetBrains的一个文件,其中包括Intellij.