2016-09-19 85 views
0

我有兩個分支:如何默認推送到不同名稱的分支?

master 
demo_master 

和兩個遙控器:

origin 
demo_origin 

如何配置GIT中自動推送主原產/主demo_master到demo_origin /主發行時git push命令?


我試圖實現由

git push --set-upstream demo_origin demo_master:master 

然而期望的結果,混帳吐出以下錯誤,每當我嘗試使用git push

致命的:上游分支您當前分支的名稱與當前分支的 名稱不匹配。到推到 遙控器上的上游分支,使用

git push demo_origin HEAD:master 

推向遙控器上的相同名稱的分支,使用

git push demo_origin demo_master 
+1

'git config push.default upstream' – PetSerAl

回答

1

你需要set the push.default configuration正確:

定義動作git push如果沒有的Refspec明確給出應採取。不同的值非常適合特定的工作流程;例如,在一個純粹的中央工作流程中(即獲取源等於推送目標),upstream可能就是你想要的。

使用Git 2.0,該設置是默認設置爲simple,以方便初學者:

simple - 在集中式工作流程,如上游附加的安全工作,拒絕推,如果上游分支的名稱與本地名稱不同。

當推送到與您通常從中取出的遠程設備不同的遠程設備時,按當前方式工作。這是最安全的選擇,適合初學者。

正如該選項所示,Git將拒絕推送到具有不同名稱的分支。爲了做到這一點,你需要將其設置爲upstream

upstream - 推動當前分支回其變化通常集成到當前的分支(被稱爲@{upstream})的分支。這種模式只有在您推送到您通常需要的同一個存儲庫(即中央工作流程)時纔有意義。

所以,做git config -g push.default upstream,然後它應該工作得很好git push --set-upstream demo_origin master:demo_master。 (注意本地分支第一個在local:remote

0

master本地分支使用git push origin -u master和上demo_master分支機構使用git push demo_origin -u master

另一種解決方案將使用mastergit branch -u origin/master br錨和git branch -u demo_origin/masterdemo_master分支。

https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Tracking-Branches

+0

我想將demo_master推送到demo_origin ** master **。這些命令是不是等同於我正在做的? –

+0

我認爲當你在'demo_master'分支上時,使用'set-upstream-to'實現它的正確方法是'git branch --set-upstream-to demo_origin/master'。 –

相關問題