2016-09-19 173 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'。 –

相关问题