同一路径中的多个git存储库

同一路径中的多个git存储库,git,Git,所以,我已经四处查看并阅读了一些关于子模块和处理此问题的其他技巧,但我不确定它是否真的满足了我的需要。以下是我当前内容管理系统的git repo: /Atlas /Atlas/Core /Sites /Sites/site1 /Sites/site2 当然是简化了。但“核心”是包含CMS所有代码的文件夹,“/Sites”是每个站点都有一个子文件夹的文件夹。我已在/sites下添加了所有站点,但有些被.gitignore排除 现在,一些被排除在外的是那些与客户无关的。在相同结构中运行的个人网站。

所以,我已经四处查看并阅读了一些关于子模块和处理此问题的其他技巧,但我不确定它是否真的满足了我的需要。以下是我当前内容管理系统的git repo:

/Atlas
/Atlas/Core
/Sites
/Sites/site1
/Sites/site2
当然是简化了。但“核心”是包含CMS所有代码的文件夹,“/Sites”是每个站点都有一个子文件夹的文件夹。我已在/sites下添加了所有站点,但有些被.gitignore排除

现在,一些被排除在外的是那些与客户无关的。在相同结构中运行的个人网站。我现在需要的是拥有一个git存储库,在这里我可以签出、编辑并将更改推送到这些个人站点,而不是所有开发人员都需要访问这些站点。因此,gitignore:

/Sites/site3

例如,但我需要签出site3,编辑它并将其推回到服务器,而不将其包含在前面提到的repo中。这在子模块中是可能的吗?或者我需要其他方法吗?

似乎您可以使用简单的分支来解决这个问题,每个站点一个分支

通常我会建议不要使用长时间运行的特性分支,但如果我正确理解了您的问题,您永远不会打算将它们合并回主分支。在这种情况下,您唯一需要做的合并就是master->site3,其他开发人员将永远不需要拉动您在site3分支中所做的更改

当您将此分支推送到远程服务器时,它将对您的开发人员可见(可能有助于协作),但当他们只想更新其本地master副本时,它不会包含在他们的git pull中


我看到的唯一问题是,您的内容管理系统无法从单独的远程分支加载单独的站点。

是的,您希望使用子模块。谢谢你的评论。分支似乎不直观,因为/Sites/site3包含在.gitignore文件中,对吗?