如何在父存储库中包含git子模块及其物理文件?

时间:2018-03-20 01:00:10

标签: git github git-submodules git-subtree git-commands

故事从git存储库开始。我们称之为宠物店。 宠物店有2个包含不同项目的文件夹。

--pet-shop          <== this is a repository
  --web             <== subfolder angular project
  --rest-api        <== subfolder python project

由于在同一个git存储库中,当开发人员将更改提交到 pet-shop / web pet-shop / rest-api 时,存在一个问题。历史记录到宠物店。这毫无意义。就像在网络中工作的人一样,他/她不需要知道 rest-api 中发生了什么。

因此,我试图将它们分开。我注意到了git子模块功能。 花了一个小时在谷歌上搜索。它现在最终得到3个git-repositories。

--pet-shop                            <==== this is a git repository
  --web @9se5082                      <==== refer to git repo pet-shop-web
  --rest-api @defs02d                 <==== refer to git repo pet-shop-rest-api


--pet-shop-web                        <==== this is a new git repository


--pet-shop-rest-api                   <==== this is another new git repository

这符合最初的要求。我可以单独提交更改。

逻辑上他们是连接的;在物理上它们分别被存储。

  

我现在的问题是,这样做的方式消耗3个git存储库,可以由1个存储库完成吗?

1 个答案:

答案 0 :(得分:2)

  

现在我的问题是,这样做的方式会消耗3个git存储库,可以由1个存储库来完成吗?

字面答案是&#34;是&#34;。您可以在一个存储库中存储多个断开连接的历史记录,只需将它们命名为不同的分支。您仍然必须在本地拥有3个存储库,但它们可以具有相同的远程存储库。但你不得不关心两次不要将它们合并在一起或强行推向错误的分支。