在单个文件夹中为多个存储库设置Git

时间:2014-06-12 01:21:25

标签: git

我有一个多子域网站,它已被设置为单个Git存储库,其中包含dev,为每个子域设置分段分支。由于所有子域中都使用代码通过Doctrine实体与数据库一起工作,最终在每个分支中使用不同版本的实体,并且在分支中的实体时最终出现错误,因此效果不佳正在努力与数据库的结构不匹配。

由于该网站仍在进行大量开发,我们需要一种方法来保持所有分支(如Doctrine实体)的公共代码更新。这个网站有更好的设置吗?

文件夹结构如下:


root
 - vendor
 - - (composer libs including Doctrine)
 - application
 - - models
 - - - Entities
 - - - - OldDB
 - - - - NewDB
 - - - Repository
 - - - - OldDB
 - - - - New DB
 - - modules
 - - - subdomain1
 - - - subdomain2
 - - - subdomain3
 - - - othermodule
 - - - moduleforsubdomain2
 - tests

子域代码包含在主站点的子文件夹中。整个站点是一个安装。

2 个答案:

答案 0 :(得分:1)

一种方法是考虑:

  • 您的主仓库(root)作为父仓库
  • 您的每个模块git subodules repos(独立回购)

那样:

  • 每个子模块使用相同的父repo版本
  • 你可以make a submodule follow a branch(意思是如果你'dev'在root中分支,你可以在子模块中创建一个类似的分支'dev',并确保每个子模块更新将将该子模块设置为其最新的“dev'SHA1)

答案 1 :(得分:0)

也许是因为我对相关系统缺乏了解,但在我看来,你只需要一个回购。只使用一个repo来处理大型SW系统非常有效。在我看来,SW结构(模块)和回购之间应该没有关系。

git的子模块概念可以在它们单独交付时使用,并且它们具有干净的接口,但在大多数情况下,每个系统只有一个单独的repo可以很好地工作。在你的特定情况下,听起来他们没有干净的界面,这就是为什么我建议一个大的回购。