通过其父项目管理多个存储库

时间:2019-02-12 17:00:10

标签: git

关于Git,我有一个奇怪的问题。我有一种情况,但不确定如何搜索。

因此,我们有一个使用Laravel构建的应用程序,我有3个分支。掌握,特色和发展。

我们有我们的客户,对于每个客户,我们都在复制Git存储库。只需在每个存储库上进行少量更改,就可以了。但是随后主仓库开始获得新功能,附加功能等。然后我需要为每个客户端进行操作,并逐个复制新文件,仔细更改一些现有文件,然后进行测试和测试。目前,只有一个主存储库和四个子存储库。

我正在为这些存储库寻找类似继承模型的东西。假设所有项目都有一个User.php,并且在一个子存储库中我想添加其他方法,那么我应该能够做到这一点而又不会失去与主存储库的同步。

也许这是两个不同的主题,但是我找不到解决这种问题的最佳方案。

也许我在这里缺乏远见:(任何方向将不胜感激。

1 个答案:

答案 0 :(得分:0)

让我们从阐明回购设置开始。我将假设以下配置:

  1. 一个“共享”存储库,具有所有客户端共有的功能。它托管在内部服务器或托管服务(例如GitHub或Bitbucket)上。

  2. 此共享存储库的本地副本。

  3. 每个客户端的回购协议,这些客户端也托管在内部服务器或托管服务上。

  4. 每个客户端存储库的本地副本。这些都是从3中的仓库中克隆出来的,因此它们的origin已被设置为每个客户适当的中央仓库。

如果这是您的设置,则使用git remote非常简单地将客户端与共享存储库同步。首先将“共享”存储库添加为远程存储:

git remote add shared <URL to the shared repo in #1>

现在,您可以以与通常与shared进行交互的相同方式与名为origin的远程交互。例如,您可以获取其所有分支:

git fetch shared

您还可以将其任何分支拉到当前工作中:

git checkout feature-a
git pull shared master

然后和平常解决合并冲突。