Git将两个独立的项目/ git repos合并为一个主项目?

时间:2016-11-22 05:41:40

标签: git github workflow project-management

我不知道如何以最佳方式提出这个问题,但我们在工作时设置了测试服务器,并且我们有一个生产服务器。我们主要在测试服务器上开发,然后在完成功能时将代码(手动)推送到生产服务器。

现在我已经想过要远离这个我们可以使用git所以我包装了所有的文件和诸如此类的东西并创建了一个git repo。太棒了,测试服务器已经建立。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

  1. 为生产服务器创建仓库
  2. 创建测试仓库的本地克隆
  3. 使用git remote add prod <url>
  4. 将生产存储库添加为本地存储库中的新远程数据库
  5. 获取生产仓库git fetch prod
  6. 如果测试中不存在prod上的文件有变化,请将prod / master合并到本地主服务器中解决所有冲突
  7. 将本地分支重置为生产状态git reset --soft prod/master
  8. 根据各自的功能创建分支并提交工作树更改
  9. 将所有新分支合并到主分支
  10. 推送所有分支到测试仓库(主人需要--force)
  11. 请注意,重要的是没有新的分支基于test / master而是prod / master。否则,如果不对其进行其他提交,将无法将其合并到生产中(这也是我们进行git重置并创建单独分支的原因)。

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

    如果您没有设法让所有开发人员使用git,那么您最终可能会花费更多时间来管理分支机构等,因此我建议您查看工作流程,以便在同步后恢复生机回购更容易。不幸的是,如果您使用的工作流程不合适,Git就不是一个好的解决方案。