[英]Local branches pulling from one place and pushing to two different remotes and in different branches(names)
[英]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-production
: wpengine-production
和wpengine-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的遙控器,我們稱它們為production
和staging
:
production -> gitlab & wpengine-production
staging -> gitlab & wpengine-staging
或者,我可以有三個遙控器,每個URL一個:
gitlab
, wpengine-staging
, wpengine-production
。
我知道我可以設置一個別名以推送到兩個遠程分支,如果只是我,那會很好,但是由於其他人將在項目上工作,所以我真的想盡可能地做到這一點,並在git push上啟用此行為。
附帶說明-在git pull
我需要它從wp-engine遙控器上獲取,但是這一部分我沒有問題(我認為)。
最后,我很清楚,我試圖實現的目標可能是不可能的,並且有充分的理由(在類似這樣的復雜設置中,應該在push / pull中明確說明遠程操作)。 我探索此問題的唯一原因是避免在進行此操作時出現人為錯誤。
我認為這是您需要的:
因此,基本上,您為同一個遙控器設置了多重推送URL,一個為gitlab設置,另一個為另一個設置,使所有遙控器保持同步。
或者,您可以創建服務器端掛鈎,例如gitlab將推送到另一個掛鈎。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.