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?
有一个主要的“项目”存储库,下面有 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 thegit/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?