该项目使用 Maven,因此 POM 文件是项目信息的主要来源。项目文件中有一些有用的设置,最好保留。
OTOH IDEA 似乎在项目文件结构中创建了太多冗余更改,这会污染 SVN 历史记录,有时还会产生冲突。
我应该将 .idea 目录和 *.iml 文件置于版本控制之下吗?在全?部分?
更新:因此,到目前为止,我发现对我和我的团队最有效的最佳实践是:
- checkin 所有 IDEA 文件、*.iml 和 .idea 目录。它们包含有值(value)的信息,每次更新时重新创建它们是浪费时间。
- 为每个开发者创建私有(private)分支
- cd 进入 .idea 目录
- svn 将其切换到其对应的私有(private)分支
- 不要在定期提交时 checkin IDEA 文件——它们会污染历史记录。检查他们的特殊提交。
这样,您可以将 .idea 目录的内容保留在版本控制中,但不会妨碍常规提交。任何开发人员都可以访问其他人的 IDEA 目录。
更新 2:自从写了这个问题后,我已经改变了我的做法,按照许多响应者的建议,不将任何 IntelliJ 文件 checkin 版本控制中。这是我目前对 Maven 和 Gradle 的实践。这些工具已经发展到可以始终从原始 .POM 或 .gradle 文件复制关键信息的程度。当文件更改时,IDE 会可靠地跟踪更改,因此您不会经常丢失 IDE 文件,因此无需 checkin 它们。
更新 3:在提出这个问题 7 年后,它似乎仍然具有相关性。同样的最佳实践也适用于 Gradle(也可能是 SBT):不要 checkin IDE 文件,而是根据需要从基本 POM、.gradle 或 SBT 文件重新创建它们。
最佳答案
简短的回答:不要将这些文件放在源代码控制存储库中,因为您可以“生成”它们(如果您不需要它们,如果它们很烦人,如果它们会破坏其他环境,则更是如此)。
我个人对 svn:ignore
使用以下值:
target
*~
*.log
.classpath
.project
*.ipr
*.iws
*.iml
.settings
关于intellij-idea - IntelliJ IDEA 9 + Maven + 版本控制的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1655293/