Git在两个存储库中同步两个称为“生产”的分支

问题描述 投票:0回答:2

我也看到过类似的问题,但是没有一个问题使我有信心改变我的git。我不是一个完全的菜鸟,但是从来没有必要处理两个存储库,所以我想知道right的处理方式。

我正在一个项目中,我们有一个仓库用于登台(SRV-S),另一个仓库用于生产(SRV-P)。两者都有“生产”分支,如果通过Jenkins魔术推入,它们就会上线。

我不是git wiz,所以我为每个存储库维护单独的项目文件夹。我在SRV-S(临时回购,生产分支)上进行更改,一旦获得批准,就将这些文件手动复制到我的SRV-P文件夹(生产回购,生产分支)中。然后,我进入SRVF-P并git添加,提交,推送。乏味。

我可以在分阶段回购中找到一个简单的方法,在名为'production'的分支上,然后从另一个回购中拉出一个名为'production'的分支,然后推送至任一回购。也就是说,“生产”分支将存在于两个具有相同历史记录的存储库中。

git
2个回答
0
投票

我认为您的主要问题是回购协议没有被[[really绑住,是吗?例如,您有两个单独的存储库,两个具有相同名称的分支……但是它们并行运行[[always,没有共同的祖先。在这种情况下,您仍然可以在一个可以使用的本地回购协议中进行游戏,并且在其上设置了两个遥控器(srv-p,srv-s)。现在....我想您将主要针对srv-s ......然后在某些时候您确定srv-s / production中的内容就是您想要的srv -p /生产(按内容而非历史)。

用最少的精力而不必手动移动东西的方法是:git checkout srv-s/production # you would be on detached HEAD # next step is where the magic happens: # - move branch "pointer" to srv-p/production # - keep our content as is, all differences between our working tree # and srv-p/production will be on index, ready to be committed git reset --soft srv-p/production # now we create a new revision so that the two branches have # exactly the same content git commit -m "A new version in srv-p/production" # now we push into srv-p/production cause right now we are still # on detached HEAD # we actually haven't moved any branch either locally # or on any of the two remotes git push srv-p HEAD:production # send current HEAD to srv-p/production

我这样做时没有任何本地分支,您也可以使流程与本地分支一起进行。


0
投票
not维护两个存储库。

将存储库合并为一个,并为生产和暂存维护一个单独的分支。然后在两个分支之间合并。

© www.soinside.com 2019 - 2024. All rights reserved.