该项目使用Maven,因此POM文件是项目信息的主要来源。项目文件中有一些有用的设置,最好保留。
然而,IDEA似乎在项目文件结构中创建了太多的冗余更改,这污染了SVN历史记录,并有时会导致冲突。
我应该完全保留.idea目录和*.iml文件吗?还是只保留其中一部分?
更新:到目前为止,我和我的团队找到的最佳做法是:
1. 检入所有的IDEA文件,包括*.iml和.idea目录。它们包含有价值的信息,每次更新都重新创建它们是浪费时间的。 2. 为每个开发人员创建私有分支 3. 进入.idea目录 4. 将其切换到相应的私有分支 5. 不要在普通提交中检入IDEA文件--它们会污染历史记录。在特殊提交中检入它们。
这样,你可以将.idea目录的内容保存在版本控制中,但不会影响普通提交。任何开发人员都可以访问其他人的IDEA目录。
更新2:自从写这个问题以来,我已经改变了我的做法,不再将任何IntelliJ文件检入版本控制中,正如许多回答者所建议的那样。这是我目前在Maven和Gradle中使用的做法。这些工具已经发展到了可以从原始的.POM或.gradle文件中始终重建关键信息的程度。当文件更改时,IDE可靠地跟踪更改,因此你不会经常丢失IDE文件,因此没有必要进行检入。
更新3:7年后问这个问题似乎仍然有意义。同样的最佳实践也适用于Gradle(可能也适用于SBT):不要将IDE文件检入,根据需要从基本的POM、.gradle或SBT文件重新创建它们。
然而,IDEA似乎在项目文件结构中创建了太多的冗余更改,这污染了SVN历史记录,并有时会导致冲突。
我应该完全保留.idea目录和*.iml文件吗?还是只保留其中一部分?
更新:到目前为止,我和我的团队找到的最佳做法是:
1. 检入所有的IDEA文件,包括*.iml和.idea目录。它们包含有价值的信息,每次更新都重新创建它们是浪费时间的。 2. 为每个开发人员创建私有分支 3. 进入.idea目录 4. 将其切换到相应的私有分支 5. 不要在普通提交中检入IDEA文件--它们会污染历史记录。在特殊提交中检入它们。
这样,你可以将.idea目录的内容保存在版本控制中,但不会影响普通提交。任何开发人员都可以访问其他人的IDEA目录。
更新2:自从写这个问题以来,我已经改变了我的做法,不再将任何IntelliJ文件检入版本控制中,正如许多回答者所建议的那样。这是我目前在Maven和Gradle中使用的做法。这些工具已经发展到了可以从原始的.POM或.gradle文件中始终重建关键信息的程度。当文件更改时,IDE可靠地跟踪更改,因此你不会经常丢失IDE文件,因此没有必要进行检入。
更新3:7年后问这个问题似乎仍然有意义。同样的最佳实践也适用于Gradle(可能也适用于SBT):不要将IDE文件检入,根据需要从基本的POM、.gradle或SBT文件重新创建它们。