如何建立一个包含多个存储库的项目

时间:2019-02-14 09:56:18

标签: git version-control atlassian-sourcetree

我有一个项目,当前部分处于源代码控制中。它的设置使得当我将项目推送到git时,它会自动部署,我当前的文件夹结构如下所示: enter image description here

AsoRock.Core中的代码编译到DLL中,然后复制到AsoRock.Web文件夹中-实际上是将AsoRock.Web文件推送到源代码管理中。

我现在想将所有其他文件和文件夹放入单独的git存储库中。因此,我希望将所有AsoRock.Core文件夹,Merchello-2.7.0文件夹和packages文件夹存储在此新存储库中。

谁能一步一步地告诉我我该怎么做?我使用源代码树作为git客户端,但是如果我最初需要使用命令行进行设置,我也将尝试使用它。

好吗?

1 个答案:

答案 0 :(得分:1)

我相信您想要的是创建带有子模块的存储库-这样子模块是独立的(具有其“自己的存储库”),但是通过父模块链接...

详细信息,您可以检查this link

简化,要创建子模块,应遵循以下步骤(从上面的链接中提取):

  

首先,将现有的Git存储库添加为我们正在处理的存储库的子模块。要添加新的子模块,请使用git子模块add命令以及要开始跟踪的项目的绝对或相对URL。在此示例中,我们将添加一个名为“ DbConnector”的库。

$ git submodule add https://github.com/chaconinc/DbConnector
  

默认情况下,子模块会将子项目添加到与存储库相同的目录中,在本例中为“ DbConnector”。如果要将其移至其他位置,可以在命令末尾添加其他路径。

为了克隆带有子模块的项目:

  

在这里,我们将克隆一个包含子模块的项目。克隆这样的项目时,默认情况下会获得包含子模块的目录,但是其中没有文件:

$ git clone --recurse-submodules https://github.com/chaconinc/MainProject

要更新子模块,请使用:

$ git submodule update --remote

要在子模块上推送更改:

$ git push --recurse-submodules=on-demand

我认为这是基础。如果您还需要更多,上面的链接将提供更多详细信息。

我希望它可以帮助您...