IDE为每个项目/工作区生成一些配置文件
IntelliJ有它的.idea/
文件夹,它是.iml
文件。
Eclipse有它的.classpath
和.project
文件。 Eclipse Maven集成过去需要在pom.xml中进行m2e-lifecycle配置(不确定是否仍然如此)
我以前见过的项目,
.idea/
文件夹的子集,因为它包含运行配置我倾向于将所有IDE工件从源代码中删除,包括配置,除了.gitignore中的IDE工件列表。
但我想知道,有什么理由支持/反对入住
进入SCM?
还是一般的禁忌?
如果您使用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?。
你为什么要省略它们:
为什么要提交它们:
关于IDE设置,例如格式设置等,类似的东西适用。只要所有使用相同的IDE共享都有意义。如果你使用不同的,你可能需要使用你的版本控制工具来实际格式化代码(格式化提交钩子,格式化比较不同的修订版本等)或者每个人都应该同意一个共同的格式化程序。
关于像m2e-lifecycle这样的构建文件中的IDE特定设置:......这实际上取决于。我宁愿尝试使用实际工作的插件配置,而无需额外的m2e-lifecycle-boilerplate。最后它不会使构建文件更具可读性;-)
总结(我的意见;-))我只在项目上单独工作时提交IDE特定文件,在任何其他情况下,我省略了像队友一样提交它们。如果他们是在一个项目中提交的,我通常不会重复使用它(或者只通过插件使用格式化程序),因为我主要是在另一个IDE上。