如何将本地Git分支推送到远程的master分支?


468

我在本地存储库中有一个分支,称为develop,并且我想确保在将其推送到源时将其与origin / master合并。目前,当我推送时,它已添加到远程开发分支。

我怎样才能做到这一点?


您是否有特定的原因不想将其本地合并origin,然后将其推送到远程服务器?
bhamby 2011年

我认为@galador意味着在本地合并master-但这是有道理的。如果对于原点的master分支足够稳定,那么对于您的master分支肯定足够稳定!
卡斯卡贝尔2011年

1
@Jefromi是的,哎呀,错字了。-_-
bhamby 2011年

2
@Jefromi想象您正在本地主机中进行某些工作,并且进行了一些尚未准备好推送的提交。事实证明您有紧迫的任务。您从远程主服务器创建本地分支,进行工作并将更改推回主服务器。也许这不是最好的方法,但这就是我发生的事情,那就是我所做的。它可以按预期的那样完美地工作。好吧,我本来应该先在单独的本地分支机构工作,但是一直都在分支,这太麻烦了,为时已晚。
pinkeen 2013年

20
我正在将开发分支推送到Heroku上的非面向公众的测试应用程序,以查看事物在Heroku的环境中如何工作。绝对不想将我的代码合并到中master,但Heroku除非运行在应用程序中,否则不会运行该代码master。对于合法的用例,这是一个完全合理的要求!
JacobEvelyn 2014年

Answers:


813
$ git push origin develop:master

或更一般地

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

24
不要做“ git push origin:master”,它可以删除远程
站点上

48
真的@MangirdasSkripka!只要使用git push origin head:master,如果你不希望指定当前分支的:)名字
的Francesc罗萨斯

23
好主意@FrancescRosàs,不过是HEAD(大写字母)。
smokku 2015年

@Mipadi,如果我获得了治疗者的许可,我可以移动吗
Neeraj Sharma

11
@NeerajSharma:我不知道什么是维修许可,或者您想搬什么。
mipadi

194

正如人们在评论中提到的那样,您可能不想这样做...如果您知道自己在做什么,那么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

 


23
只需提一下,他的请求有一定意义,我正在使用该案例将我的开发部署(推送)给Heroku大师
Fabiano Soriani 2012年

5
同样,此技术仅适用于高级git用户。并不是太困难,它只是要求人们了解他们在做什么,以及它为什么以这种方式起作用。每个人都可以随意使用git,但我认为按照我建议的方法,出于教育目的,特别是对于git新手来说,它要好得多。干净的“主题分支”是开始的方式,您以后可以根据需要优化工作流程。
尤金·萨金

1
这实际上是一件很普通的事情。master分支通常是您的部署分支。如果两个团队有意分散其部署,那么您很可能会使用精心挑选的本地分支将补丁推向上游。现在您可能会争辩说,应该将更改推到上游,然后从那里合并到主分支中,但是以另一种方式做,IMO当然并不奇怪。
dgatwood

+1这是“构建”生产版本的最合乎逻辑的方式。
瑞安

如果您不想与develop合并但又将开发重新建立基础以掌握,该怎么办?
user239558

-1

作为对@Eugene答案的扩展,另一个版本可以将代码从本地存储库推送到master / develop分支。

切换到分支“ master”:

$ git checkout master

从本地仓库合并到主仓库:

$ git merge --no-ff FEATURE/<branch_Name>

推向高手:

$ git push

-1

请按照以下步骤将本地仓库推入Master分支enter code here

$ git状态

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.