如何在git存储库中管理IDE文件?

时间:2013-06-10 12:55:01

标签: git version-control ide sencha-architect configuration-management

该应用程序是使用Sencha Architect开发的,它使用大量辅助文件来管理各种与IDE相关的东西(导出路径,IDE的版本控制等)。

每当团队成员在Sencha Architect IDE中打开项目时,其中一些文件就会发生变化。

为了举例说明一个特别烦人的变化,请考虑Architect生成的exportPath文件中的属性*.xds。我将选择一个服务器发布到特定路径,其他团队成员将有不同的服务器/路径配置。

在我们的代码库中,我非常希望拥有IDE文件:

  1. 在一个单独的存储库中,
  2. 在子模块中(是的,git特定的,我知道)或
  3. 驻留在用户计算机上,VCS无视其中的更改。
  4. 这里需要注意的关键是,Sencha Architect希望文件位于相对于项目的某些位置,因此IDE文件必须与普通源文件在同一位置可用。

    此外,使用.gitignore不是一种选择,因为Sencha Architect将在其中一些信息中写入对其他团队成员正确打开它们至关重要的信息。例如。在打开项目时,Sencha Architect可以决定将项目升级到更新的版本(如果你想打开项目,它是非可选的),在更新过程中,IDE将修改一些源 - 代码文件。其他团队成员必须了解版本升级才能正确打开项目。

    This SO question给出了Sencha使用的复杂格式的一些背景知识。我对Sencha Architect的体系结构评估中的负面语气进行了赦免,但似乎他们采用了一个好主意(使用元数据和代码生成)有点过头了(使所有优秀的unix工具(包括git)的使用无效)。

    这里的首选方法是什么?为什么?

2 个答案:

答案 0 :(得分:8)

除非你有一个非常令人信服的理由,否则不应对IDE文件进行版本控制。也许您的项目仅使用特定IDE中的插件构建,您需要对这些设置进行版本控制。如果您不需要这些文件来构建或运行项目,则可能不应对它们进行版本化。

您可以使用Git ignore those files。特别是,IDE文件是全球gitignore的良好候选者,因为每个用户将使用他们想要的任何IDE,并且这些设置应该应用于他们的所有存储库。

答案 1 :(得分:2)

除了存储用户特定设置的文件之外,对IDE文件使用版本控制会很有帮助。另见https://intellij-support.jetbrains.com/hc/en-us/articles/206544839-How-to-manage-projects-under-Version-Control-Systems

对这些文件使用版本控制的优点是

  • 分享整个开发团队的代码样式
  • 管理和共享受版本控制的嵌套存储库。