将多个github存储库合并到一个目录中

将多个github存储库合并到一个目录中,git,github,opencart,Git,Github,Opencart,我有许多基于OpenCart的电子商店,希望为它们创建部署系统。 我的想法是逐步将github存储库拉入一个目录,例如: 来自官方回购的OpenCart 我的私人回购的主题 模块(可以在/admin、/vqmod、/catalog dirs中添加或更新文件) 其他变化 …并将其部署到生产服务器 请告诉我最好的解决方案是什么?我应该简单地将所有存储库合并到一个目录中还是使用子模块 谢谢 听起来您只是想将多个回购协议和分支机构合并到您当前的分支机构中 首先,将所有其他回购协议添加为远程: git r

我有许多基于OpenCart的电子商店,希望为它们创建部署系统。 我的想法是逐步将github存储库拉入一个目录,例如:

  • 来自官方回购的OpenCart
  • 我的私人回购的主题
  • 模块(可以在/admin、/vqmod、/catalog dirs中添加或更新文件)
  • 其他变化
  • …并将其部署到生产服务器

    请告诉我最好的解决方案是什么?我应该简单地将所有存储库合并到一个目录中还是使用子模块


    谢谢

    听起来您只是想将多个回购协议和分支机构合并到您当前的分支机构中

    首先,将所有其他回购协议添加为远程:

    git remote add official url_to_OpenCart_official_repo
    git remote add themes url_to_private_repo
    git remote add modules url_to_modules_repo
    
    然后每次需要发布时:

    git checkout -b release/whatever
    git merge official/master themes/your_branch modules/your_branch
    git push origin -u release/whatever
    
    在合并完成之后,您需要进行一些额外的测试

    如果您一次合并多个分支,将尝试八达通合并,这意味着它将尝试合并所有指定的分支,只要可以干净地进行合并。如果存在任何合并冲突,则合并将失败。在您的具体案例中,我发现存在一些合并冲突。您必须一次合并一个分支:

    git merge official/master
      <resolve merge conflicts>
    git merge themes/your_branch
      <resolve merge conflicts>
    git merge modules/your_branch
      <resolve merge conflicts>
    
    git合并官方/主机
    git合并主题/您的分支
    git合并模块/您的分支
    

    另一个堆栈溢出问题很好地概述了Git合并策略以及何时使用它们:

    根据我的经验,使用github时,子模块会创建一个目录。因此,除非它符合您的需要,否则我只需要使用一个脚本,将每个存储库拉入各自的文件夹中,然后将它们复制到另一个文件夹中。虽然不是一个性感的解决方案。米卡,不幸的是,OpenCart模块将文件添加到许多目录中,其中90%不会覆盖现有文件,而是添加新文件。当合并“git merge official/master themes/master”时,会抛出一个错误-致命:只能将一个提交合并到空头中。在此之前,我应该做“git pull official master”“git fetch official”。然后得到“致命:主题/主-我们不能合并的东西”