2016-11-22 199 views
-1

我不知道如何问这个最好的方法,但我们有一个测试服务器设置在工作中,我们有一个生产服务器。我们主要在测试服务器上开发,然后在使用功能完成时将代码(手动)推送到生产服务器。Git将两个单独的项目/ git repos合并到一个主项目中?

现在我想摆脱这一点,我们可以使用git,所以我包装了所有文件和whatnots,并创建了一个git repo。太棒了,测试服务器已经建立。

现在呢?从生产服务器上的文件(不同)设置另一个git存储库?然后?从那里将两个回购合并成一个回购单?我对这个方面很陌生,所以我只是需要帮助。

注意:有些开发人员将编辑生产服务器上的文件,并且不会将这些文件移回我们的测试服务器(主要是因为他们正在处理的功能尚未完成),所以现在有了新的更改在我们的测试服务器上进行了更新,现在需要将新的更改转移到生产环境中。

我希望这是有道理的,评论,如果你需要澄清.. 感谢您的时间 任何帮助表示赞赏!

+0

如果回购是完全不同的?如果是的话,你可以使用compareBeyound工具并首先合并它 – KOTIOS

回答

1

我会像下面描述的那样处理它(不幸的是会有很多手动工作来同步这两个)。重置和创建独立分支的原因是,可以在同步后将单个新功能合并到生产中。

  1. 创建一个回购协议用于生产服务器
  2. 创建测试回购
  3. 的本地克隆添加生产回购为使用git remote add prod <url>
  4. 在当地回购新的远程获取生产回购git fetch prod
  5. 如果在测试中不存在prod上的文件中存在更改,请将prod/master合并到本地主节点中以解决所有冲突
  6. 将本地分支重置为生产git reset --soft prod/master
  7. 创建分支并提交您已经根据各自的特点
  8. 合并所有新的分支机构到主分支
  9. 按各分公司进行测试回购工作树改变(主会需要--force)

请注意,重要的是没有新的分支机构是基于测试/主机,而是产品/主机。否则就不可能将其合并到生产环境中,而无需进行其他提交(这也是为什么我们进行了git重置并创建了独立分支)。

如果直接在主服务器上创建或编辑文件,则需要在那里提交文件并将其合并回测试。

如果您无法让所有开发人员使用git,您最终可能会花费比管理分支机构等更多的时间,因此我建议您在查看工作流程以便在同步repos之后使生活更轻松。不幸的是,如果您使用的工作流程不适合,Git不是一个好的解决方案。