2011-03-24 198 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

相關問題