ローカルのGitブランチをリモートのマスターブランチにプッシュするにはどうすればよいですか?


468

私のローカルリポジトリには、developというブランチがあります。ブランチをoriginにプッシュすると、origin / masterと確実にマージされます。現在、私がプッシュすると、リモートの開発ブランチに追加されます。

これどうやってするの?


ローカルにマージしoriginてからリモートにプッシュしたくない特別な理由はありますか?
バンビー

@galadorはローカルにマージすることを意味すると思いますmasterが、それは有効なポイントです。それが起源のmasterブランチのために安定した十分だ場合、確かにそれはあなたのmasterブランチのための安定した十分です!
Cascabel

1
@Jefromiうん、おっと、タイプミス。-_-
バンビー

2
@Jefromiが、ローカルマスターで何かに取り組んでいて、まだプッシュする準備ができていないコミットを行ったと想像してください。次に、あなたは緊急の仕事をしていることがわかります。リモートマスターからローカルブランチを作成し、作業して、変更をマスターにプッシュします。多分それは最善の方法ではないかもしれませんが、それは私に起こったことであり、それは私がやったことです。意図したとおりに問題なく動作しました。まあ、そもそも別の地方支部で働いていたはずなのに、いつも支部に支部を置くのは面倒で手遅れでした。
pinkeen 2013

21
Herokuの環境でどのように機能するかを確認するために、開発ブランチをHerokuの非公開テストアプリにプッシュしています。間違いなく私のコードをにマージしたくありませんが、masterHerokuはmasterアプリ内になければ、コードを実行しません。これは、正当なユースケースでの完全に合理的なリクエストです!
JacobEvelyn 2014年

回答:


813
$ git push origin develop:master

または、より一般的に

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

25
リモートから既存のブランチを削除できる「git push origin:master」を行わないでください
Mangirdas Skripka

48
本当に@MangirdasSkripka!git push origin head:master現在のブランチの名前を指定したくない場合にのみ使用します:)
Francesc Rosas '29

23
@FrancescRosàsの良いアイデアですが、HEAD(大文字)です。
smokku

@Mipadi私は修理人の許可を持っている場合、私はこれを移動することができます
Neerajシャルマ

11
@NeerajSharma:私は、男性の許可が何であるか、またはあなたが何を動かしたいのか分かりません。
mipadi 2016年

194

人々がコメントで述べたように、あなたはおそらくそれをしたくないでしょう...あなたが何をしているのかを知っていれば、ミパディからの答えは絶対に正しいです。

私は言うでしょう:

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 '07 / 07/12

5
繰り返しますが、この手法はgitの上級ユーザーのみの私見です。難しいことではなく、人々が何をしているか、なぜそれが機能するのかを理解する必要があります。誰でも自由にgitを自由に使用できますが、私が提案したアプローチに従うことは、教育目的、特にgitの初心者にとってははるかに優れていると思います。クリーンな「トピックブランチ」が開始方法であり、必要に応じて後でワークフローを最適化できます。
Eugene Sajine、2012

1
それは実際にはかなり一般的なことです。通常、マスターブランチはデプロイメントブランチです。2つのチームが意図的に展開を分岐させた場合は、厳選されたローカルブランチを使用してパッチをアップストリームにプッシュする可能性があります。ここで、変更を上流にブランチにプッシュし、そこからマスターにマージする必要があると主張するかもしれませんが、IMOとは逆にそうするのは確かに奇妙ではありません。
dgatwood 2013

+1これは、製品リリースを「構築」するための最も論理的な方法です。
ライアン

開発とマージしたくないが、開発をマスターするためにリベースした場合はどうしますか?
user239558 2015年

-1

@Eugeneの回答の拡張として、ローカルリポジトリからマスター/開発ブランチにコードをプッシュするように機能する別のバージョン。

ブランチ「マスター」に切り替え:

$ git checkout master

ローカルリポジトリからマスターにマージ:

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

マスターにプッシュ:

$ git push

-1

以下の手順に従って、ローカルリポジトリをマスターブランチにプッシュします。enter code here

$ gitステータス

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.