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

时间:2014-02-03 15:24:57

标签: git github opencart

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

  1. 来自官方报道的OpenCart
  2. 来自我的私人仓库的主题
  3. 模块(可以添加或更新/ admin,/ vqmod,/ catalog dirs中的文件)
  4. 其他变更
  5. ...并将其部署到生产服务器。

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

    谢谢!

1 个答案:

答案 0 :(得分:1)

听起来你只想将多个回购和分支合并到当前分支中。

首先,将所有其他repos添加为遥控器:

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>

这个其他Stack Overflow问题很好地概述了Git Merge Strategies以及何时使用它们:When would you use the different git merge strategies?