IDE为每个项目/工作区生成一些配置文件
IntelliJ的文件夹为.idea/
,文件为.iml
。
Eclipse具有其.classpath
和.project
文件。
Eclipse Maven集成曾经需要在pom.xml中进行m2e-lifecycle配置(不确定是否仍然如此)
我过去看过项目,
.idea/
文件夹的子集的原因是,其中包含运行配置除了.gitignore中的IDE工件列表之外,我倾向于将所有IDE工件(包括配置)排除在源代码之外。
但是我想知道,什么是拒绝签入的好理由
进入SCM?
还是一般的不参加?
答案 0 :(得分:3)
如果使用Maven / Gradle / SBT,则没有提交* .iml文件的意义,因为它们是从Maven / Gradle / SBT重新生成的。这些构建系统也会自动生成工件,因此,除非您创建自己的IDE工件,否则不应提交工件配置。
另请参阅How to manage projects under Version Control Systems。
另请参阅类似的问题:Which files in .idea folder should be tracked by Git?。
答案 1 :(得分:2)
为什么要忽略它们:
为什么要提交它们:
关于IDE设置,例如格式设置等,类似的内容也适用。只要所有使用相同的IDE共享才有意义。如果使用不同的版本,则可能需要使用版本控制工具来实际格式化代码(格式化提交挂钩,在比较不同修订版之前进行格式化等),否则每个人都应该同意一个通用格式化程序。
关于诸如m2e-lifecycle之类的构建文件中的IDE特定设置: ...这真的取决于。我宁愿尝试使用无需额外的m2e-lifecycle-boilerplate即可实际运行的插件配置。最后,它不会使构建文件更具可读性;-)
总结(我的看法;-))我仅在单独处理项目时才提交IDE特定的文件,在任何其他情况下,我都没有像队友一样提交它们。如果他们是在项目中提交的,我通常不会像我通常在另一个IDE上那样重复使用它(或仅通过插件使用格式化程序)。