簡體   English   中英

git從一個本地分支推送到兩個在不同遠程上具有不同名稱的分支

[英]git push from one local branch to two branches with different names on different remotes

tl; dr:git push我想實現以下目標:

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

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

詳細信息:我正在使用他們的暫存和生產環境以及git push功能在https://wpengine.co.uk/上開發一個網站。

Wpengine在git repo / branch production/master上進行production/master並在repo / branch staging/master

為了使我可以從具有暫存/主分支的一個本地存儲庫分別推送這些數據,我設置了兩個遠程wpengine-productionwpengine-productionwpengine-staging

然后,我將本地staging的上游設置為wpengine-staging master ,將本地master的上游設置為wpengine-production master以及git config push.default upstream

到目前為止一切順利-現在,當我從任一分支進行git push ,它將提交提交到所需的遠程分支。

接下來,我需要在gitlab存儲庫上保留代碼的副本。

為此,我的本地gitlab/staging應將登台推送到gitlab/staging ,將master推送到gitlab/master

現在,我知道了Git-將代碼推送到兩個遙控器 ,這對於master分支應該可以正常工作。

但是,我正在為暫存分支的設置而苦苦掙扎,因為如果我在單個遠程服務器上使用兩個推送URL,則需要為每個URL /分支在同一分支上設置兩個不同的上游。

據我所知這是不可能的。

因此,明智的設置是:

兩個具有兩個推入URL的遙控器,我們稱它們為productionstaging

production -> gitlab & wpengine-production

staging -> gitlab & wpengine-staging

或者,我可以有三個遙控器,每個URL一個:

gitlabwpengine-stagingwpengine-production

我知道我可以設置一個別名以推送到兩個遠程分支,如果只是我,那會很好,但是由於其他人將在項目上工作,所以我真的想盡可能地做到這一點,並在git push上啟用此行為。

附帶說明-在git pull我需要它從wp-engine遙控器上獲取,但是這一部分我沒有問題(我認為)。

最后,我很清楚,我試圖實現的目標可能是不可能的,並且有充分的理由(在類似這樣的復雜設置中,應該在push / pull中明確說明遠程操作)。 我探索此問題的唯一原因是避免在進行此操作時出現人為錯誤。

我認為這是您需要的:

Git-將代碼推送到兩個遙控器

因此,基本上,您為同一個遙控器設置了多重推送URL,一個為gitlab設置,另一個為另一個設置,使所有遙控器保持同步。

或者,您可以創建服務器端掛鈎,例如gitlab將推送到另一個掛鈎。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM