【问题标题】:Different repositories for each module in intellij IDEAintellij IDEA 中每个模块的不同存储库
【发布时间】:2015-01-19 18:55:20
【问题描述】:

我不确定如何为我的 IDEA 项目中的每个不同模块选择不同的 git 存储库,我没有看到任何选项,所有 git 选项似乎只与一个 git 存储库有关。

有没有办法区分它们?,所以:

(都在同一个项目中)

Module A -> repo A
Module B -> repo B

?.

【问题讨论】:

    标签: git actionscript-3 version-control intellij-idea


    【解决方案1】:

    您可能需要手动编辑 vcs.xml:

    • 打开顶层模块/项目的vcs.xml

      ex.: ~/[Top module folder]/.idea/vcs.xml
      
    • 添加 vcs 条目:

      <mapping directory="$USER_HOME$/sub_module01" vcs="Git" />
      <mapping directory="$USER_HOME$/sub_module02" vcs="Git" />
      

    【讨论】:

      【解决方案2】:

      好吧,我想我还是根据自己的情况破解了这个......非常令人困惑,因为似乎没有关于如何在任何地方进行设置的具体说明。我有一个项目,其中包含一个 Angular-CLI 客户端应用程序和一个 Grails API 服务器端应用程序。

      因此,如果您尝试使用 GIT 为多模块项目设置 CVS,并希望为每个模块而不是整个项目使用单独的 git 存储库,那么......

      1. 通过文件 > 设置 > 版本控制 > 添加其他根目录 >
      2. 单击“+”符号 > 浏览到项目根目录并选择模块 文件夹 > OK > VCS:选择 Git > OK
      3. 对所有其他模块重复第 2 步
      4. 添加所有模块后,您希望提交到各个存储库 > 单击设置确定
      5. 是的,是的,您将立即收到“VCS 根映射”错误警报!!!
      6. 不要惊慌。从 Intellij 的“项目/解决方案”浏览器中选择模块。
      7. 右键单击 > 选择 Git > Commit Directory > Unversioned Files 单击“浏览”链接并选择模块目录并单击绿色“+”图标。
      8. 系统会警告您该模块已在 Git 控制下,但请继续添加它。
      9. 对所有其他模块重复步骤 7-9。
      10. 这将消除“VCS 根映射”错误。
      11. 现在转到应位于 Intellij 应用程序窗口底部的版本控制窗口。应该有一个未版本化的文件夹 > 展开 > 你会看到这里列出的所有模块。
      12. 通过单击“+”按钮添加每个模块...再次???!!! :-)
      13. 右键单击默认树并选择“提交并推送”。
      14. 这会将所有模块提交到本地 VCS Git
      15. 提交完成后,将出现一个“推送提交”对话框,您将在其中看到每个模块都可以为每个模块添加远程 repo url!!!!
      16. 耶!!!!

      希望这对所有人都有帮助:-)

      【讨论】:

        【解决方案3】:

        转到设置/版本控制,您可以在那里为每个目录配置不同的 VCS 根。因此,在您的情况下,为每个包含模块的目录定义一个 VCS 根目录。您应该删除 VCS 条目 &lt;Project&gt; 并为各个模块添加条目,使其看起来像这样:

        如果您在多个不同的存储库中修改了文件并点击 CTRL+K 或以其他方式打开提交对话框,所有更改的文件将被选中,当您提交更改时将在包含更改文件的所有存储库中创建具有相同消息的新提交。

        如果您只想从单个模块提交文件,要么在提交对话框中手动选择它们,要么右键单击您的模块,转到 Git 并选择 提交目录

        要推送提交,只需点击 CTRL+SHIFT+K,您应该会看到类似这样的内容(注意两个模块都包含在内) .

        【讨论】:

        • 现在一切正常,除了推送部分。当我选择模块并转到 VCS->Git->Push 时,它只显示一个模块,这是我创建项目时创建的第一个模块。其他模块不在列表中,因此我无法推送更改。知道为什么会发生这种情况吗?。
        • 能否用您的 VCS 根配置和项目结构的屏幕截图更新您的问题?或者一些类似的信息。推送对话框对我来说很好用(显示推送两个模块的提交)。我的测试项目结构是project/{module1,module2}
        • 我会的,等一下。
        • 抱歉,由于保密协议,我无法上传整个项目结构的截图。关于项目结构我可以告诉你,我有一个项目,包含 2 个模块,第一个模块工作正常,第二个添加的模块是有问题的。这些模块不共享文件夹路径,我的意思是,它们位于不同的文件夹中,没有共同的后代。
        • 我明白了。根据您的屏幕截图,您可能想尝试删除 &lt;Project&gt; VCS 根目录,因为它可能会覆盖单个模块的 VCS 根目录?我在答案中添加了我的工作设置的屏幕截图,希望它会有所帮助
        猜你喜欢
        • 2014-12-14
        • 1970-01-01
        • 2013-07-24
        • 1970-01-01
        • 1970-01-01
        • 2023-02-11
        • 1970-01-01
        • 2014-11-22
        • 1970-01-01
        相关资源
        最近更新 更多