PhpStorm - 嵌套 Git 个存储库

PhpStorm - Nested Git Repositories

有一个主要的“项目”存储库,下面有 2 个“模块”存储库。目录结构为:

Project (Git)
- File1
- File2
- Modules
--- Module1 (Git)
--- Module2 (Git)

到目前为止一切似乎都设置得很好(在“设置 -> 版本控制”中有 3 个条目)并且每个存储库都可以完成 VCS 操作。

现在,当从像“Module1”这样的模块中提取更改时,我希望这些更改也可以提交到“项目”存储库。

修改“模块 1”中的某些内容时相同:我想将此更改提交给“模块 1”本身,但也提交给“项目”存储库。

这可能吗?

表示嵌套 git 存储库的惯用方式是通过 git submodule or git subtree:

  • git submodule 是一个内置功能,它允许您将外部树的签出版本作为您的存储库的一部分提交。 Git 将填充该目录作为结帐的一部分,但嵌套存储库中的文件不会作为外部存储库的一部分保留。对于高级用户或非常大的存储库,这可能是一个不错的选择。
  • git subtree 是一个 script in the git/contrib directory。它管理将另一个存储库导入您的存储库,因此用户和他们的工具不需要知道导入。您的存储库将增长以包含您作为子树导入的存储库的整个历史记录。对于较小的或第一方存储库,这可能是一个不错的选择。

似乎截至 2018 年 9 月 PhpStorm supports submodules. The JetBrains IDEA documentation alludes to them, as described in the SO answer to Work with Git Tool - Submodules with PhpStorm

我不知道对子树的正式支持,这是一个 contrib 特性而不是核心特性,就 git 而言,无论如何更像是正常提交​​。

另请参阅:

  • How do I work with a git repository within another repository?