是否必须在版本控制中保存*.iml文件



我现在已经切换到Android Studio,并使用源代码树将我的项目保存在Git中。每当我在模块中添加或删除任何库时,其.iml文件也会发生更改。我是否提交*.iml真的无关紧要,因为它们是在其他Android Studio中自动生成的。然而,在这里它说你应该存储*.iml。我的问题是,我们真的需要与其他人共享我们的*.iml吗?如果是,为什么?

一般最佳实践是:

  • 使项目尽可能与IDE无关
  • 不要提交生成的文件

所以答案是:VCS最好忽略这些文件。

是的,.iml文件适用于版本控制(请参阅此注释)

让项目尽可能与IDE无关也是正确的,然而,共享.iml文件不会破坏使用其他IDE开发的人的任何东西。对他们来说,它们只是一堆相对较小的文件,与他们无关。

对于同时使用不同IDE的团队来说,一个好的做法是将每个IDE的项目文件存储在VCS中,只排除那些包含特定于单个开发人员环境的路径、环境变量等的文件。通过这种方式,任何使用支持的IDE的人都可以享受适当的共享设置的好处,例如:

  • 共享生成配置
  • 共享依赖项
  • 自动代码质量检查的配置

根据具体的IDE,还有更多的用例。编辑:对于IntelliJ,另请参阅此常见问题

我同意它们是与代码无关的IDE相关文件,不应该共享但是,那么您应该知道如何重新生成它们。

当您的远程repo不包含这些文件时,您可能会遇到这样的情况,当您克隆代码并在IDEA中打开时,它只显示了一堆错误。为什么?*.iml文件不会重新生成。

您必须使用"文件"-"新建"-"版本控制中的项目"从IDEA导入。只有这样才能为您生成文件。

经验法则-"任何可以从源代码生成的东西都不应该被签入"。

最新更新