2011-03-24 141 views
355

我在本地回购中有一个名为develop的分支,我想确保当我将它推到原点时,它会与原点/主点合并。目前,当我将它添加到远程开发分支时。如何将本地Git分支推送到远程的主分支?

我该怎么做?

+0

是否有你不希望在本地将它并入'origin',然后推动该远程特定的原因是什么? – bhamby 2011-03-24 18:15:27

+0

我认为@galador意味着将本地合并到'master'中 - 但这是一个有效的点。如果它足够稳定的原始主分支,那么*当然*它足够稳定的主分支! – Cascabel 2011-03-24 18:31:59

+1

@Jefromi是的,哎呀,错字。 -_- – bhamby 2011-03-24 18:33:36

回答

606
$ git push origin develop:master 

,或者更一般地说

$ git push <remote> <local branch name>:<remote branch to push into> 
+19

不要做“git push origin:master”,可以删除你现有的分支o远程 – 2015-01-12 16:27:58

+28

True @MangirdasSkripka!如果您不想指定当前分支的名称,只需使用'git push origin head:master'即可。 – 2015-05-29 12:01:34

+15

好主意@FrancescRosàs,它是HEAD(大写字母)。 – smoku 2015-08-06 09:09:54

153

正如在评论中提到的人,你可能不希望这样做... 从mipadi答案是绝对正确的,如果你知道你的”重新做。

我会说:

git checkout master 
git pull    # to update the state to the latest remote master state 
git merge develop  # to bring changes to local master from your develop branch 
git push origin master # push current HEAD to remote master branch 

 

+13

只需要提一下,在他的请求中有一些意义,我正在使用这种情况来将我的开发部署(推送)到Heroku master – 2012-07-07 07:47:49

+4

再次,此技术仅适用于高级git用户。并不是说它太困难了,它只是要求人们理解他们在做什么以及为什么它按照它的工作方式工作。每个人都可以自由地使用git来满足他们的喜好,但我认为遵循我建议的方法对于教育目的来说更好,尤其是对于git新手来说。清理“主题分支”是开始的方式,如果需要,您可以稍后优化工作流程。 – 2012-07-10 17:57:06

+1

这其实是一件相当常见的事情。主分支通常是您的部署分支。如果两个团队故意分散他们的部署,那么你很可能会用一个樱桃选择的本地分支向上游推送补丁。现在你可能会争辩说,这些变化应该被推到一个分支上,然后从那里合并到主人手中,但以另一种方式来做这件事并不奇怪,IMO。 – dgatwood 2013-07-31 01:35:51

相关问题