git从一个本地分支推送到两个不同遥控器上具有不同名称的分支

时间:2018-01-19 10:17:57

标签: git

TL; DR:git push我希望实现以下目标:

local/staging -> wpengine-staging/master
local/staging -> gitlab/staging

local/master -> wpengine-production/master
local/master -> gitlab/master

详细信息: 我正在使用他们的登台和制作环境以及他们的git推送功能在https://wpengine.co.uk/上开发一个网站。

Wpengine在git repo / branch production/master上进行制作,并在repo / branch staging/master上进行演示。

为了允许我分别从一个带有登台/主分支的本地仓库推送到这些,我设置了两个遥控器:wpengine-productionwpengine-staging

然后我将本地staging的上游设置为wpengine-staging master,将我的本地master设置为wpengine-production master以及git config push.default upstream

到目前为止一直很好 - 现在当我从任一分支git push发送我的提交到所需的远程和分支时。

接下来,我需要在gitlab repo上保留代码的副本。

为此,我的本地回购应该将分段推送到gitlab/stagingmastergitlab/master

现在,我知道Git - Pushing code to two remotes,这应该适用于主分支。

然而,我正在为登台分支的设置而苦苦挣扎,因为,如果我在一个遥控器上使用两个推送URL,我需要在每个URL /分支的同一分支上设置两个不同的上游。 / em>的

据我所知,这是不可能的。

所以设置明智我可以:

两个带有两个推送网址的遥控器,让我们称之为productionstaging

production -> gitlab & wpengine-production

staging -> gitlab & wpengine-staging

或者,我可以有三个遥控器,每个网址一个:

gitlabwpengine-stagingwpengine-production

我知道我可以设置一个别名来推送到两个远程分支,如果它只是我,那就没关系了,但是因为其他人会在项目上工作我真的想让它尽可能地证明这一点并启用此行为在git push上。

作为旁注 - 关于git pull我需要从wp引擎遥控器中取出,但那部分我不会遇到(我认为)问题。

最后,我很清楚我想要实现的目标可能是不可能的,并且有充分的理由(应该在这样的复杂设置上推送/拉动时明确说明遥控器)。我正在探索这个问题的唯一原因是为了避免人为错误。

1 个答案:

答案 0 :(得分:1)

我认为这就是你所需要的:

Git - Pushing code to two remotes

所以基本上你为同一个遥控器设置多个推送网址,一个用于gitlab,一个用于另一个,保持所有遥控器同步。

或者您可以创建服务器端挂钩,例如gitlab将推送到另一个挂钩。