2017-10-11 69 views
0

我们有一个临时环境和一个生产环境。我们可以做任何我们想要的工作来测试新的持续集成定义/构建/版本等......每个环境都有一个git回购。镜像制作环境中的git仓库

目前,我有两个本地回购。一个用于分段,另一个用于生产。 99%的时间是我们在生产中工作的,因为我们并不经常修改构建/发布定义。但是,我们正在进行更改,我需要使用生产代码更新暂存git repo代码。

所以,我基本上只是从本地生产repo目录(减去任何git相关文件)复制和粘贴代码到分段,然后推送到分段服务器。

这是跛脚,我不想再这样做。那么,更有效的设置是什么?理想情况下,分段只会“镜像”生产,但我们不希望分段中的更改影响生产。

回答

2

我真的不知道是谁的想法是有两个单独的回购舞台和制作,但我没有经常看到这样的设置(甚至有可能)。如果您在两个回购协议中对相同产品的版本代码进行版本控制,那么这里明显的修复方法就是仅对所有内容使用单个回购协议。你将在这个单一的仓库中有分段和生产分支,现在如果你需要将特性从分段阶段移动到生产阶段,反之亦然,你可以在你的指尖进行合并和重新绑定等操作。

+0

这实际上是CI /服务器配置测试的更多内容。更新tfs版本,网络配置等等。因此,只有在进行可能影响其他团队的更改时才使用Git配置......因此,此设置不是我们正常工作流程的一部分。 – jparram

+0

@jparram我并不熟悉你的设置的复杂性,但是如果你需要在Git中的同一个仓库中的两个分支之间传递信息,那就相对简单了。如果您需要在_different_ repos中的两个分支之间执行相同的操作,它就是橙子的苹果,并且大致结束了您现在的位置,手动复制或者编写脚本来执行相同操作。 –

+0

谢谢你的时间。在第二次复制和粘贴之后,我编写了它...但很好奇,如果在混合中使用不同的回购协议时还有其他选项。 – jparram

0

根据你所说的,你只需要创建两个主要分支的回购:devmaster。每当你要使用的代码,例如,你说:

复制并粘贴到本地生产回购目录(减去任何git的相关文件)到临时代码,然后推到临时服务器。

相反,从分支staging结帐staging-test然后git pull --rebase origin master,所以分支分期应master代码合并。

您可以在GitFlow看一看:https://www.atlassian.com/git/tutorials/comparing-workflows

0

您可以混帐推一个git钩添加到您当地生产的回购协议,然后切换到当地的分期回购,从当地的生产回购拉和推到远程分段回购。