【问题标题】:Excluding Intelij .iml files on multi-computer workspace排除多计算机工作区上的 Intelij .iml 文件
【发布时间】:2018-08-14 14:20:01
【问题描述】:

据我了解,最佳做法是不要将 IDE 特定文件(如 *.iml)添加到 git。

如果在一个分支中发生结构项目/模块更改,当在同一项目中使用未跟踪的 .iml 文件切换分支时,Intellij 项目是否会损坏?新的 .iml 文件将被保留,不再代表另一个分支的结构。

类似的问题可能是:在一个工作站上重构项目,然后切换到另一台计算机并从 git 中提取更改会导致 Intellij 项目损坏,因为本地 .iml 文件不再代表结构上已经过的项目重构。

在您的 SCM 中不包含 .iml 文件是否有危险?

【问题讨论】:

    标签: git intellij-idea


    【解决方案1】:

    https://intellij-support.jetbrains.com/hc/en-us/articles/206544839-How-to-manage-projects-under-Version-Control-Systems

    一般情况下,建议将*.iml文件存储在VCS下,不知道“最佳实践是不要将IDE特定文件如*.iml添加到git”的信息来自哪里。

    【讨论】:

    • 这句话来自于“不要将 IDE 特定文件放在版本控制中,因为那里有各种 IDE,这种元数据会污染代码库”
    • 来自您的来源:'您可能会考虑不共享以下内容:基于 Gradle 或 Maven 的项目的 .iml 文件和 .idea/modules.xml 文件,因为这些文件将在导入时生成' - 这意味着,据我了解,不重新导入的结构更改将破坏 Intellij 中的项目
    • 是的,如果将某些更改应用于例如 pom.xml 以在 IDE 中反映它们,则需要重新导入。
    • 感谢您的回答。最后一点,如果发生“使缓存无效并重新启动”会解决这个问题吗?我猜是的,但我不确定。再次感谢:)
    • 如果项目重新导入后仍有问题(例如,无法导航到某些类、未解析的引用等),使缓存无效应该会有所帮助。但通常,重新导入就足够了,不会损坏任何东西。
    【解决方案2】:

    Eclipse 比 Intellij 更容易破坏工作空间。但最好不要在 .idea 下向 VCS 提交任何内容。有几个地方,尤其是workspace.xml,你可能会弄乱其他用户。

    【讨论】:

    • 建议从 VCS 中排除此类文件(尤其是 workspace.xml),同时提交所有其他项目配置文件。查看我回复中的链接
    猜你喜欢
    • 1970-01-01
    • 2015-04-29
    • 2013-10-10
    • 2014-03-11
    • 2012-01-16
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多