2009-09-17 19 views
34

私はプロジェクトにメンテナンスブランチとマスターブランチを持っています。gitでコミットをバックポートするにはどうしたらいいですか?

git checkout master; git merge maintenance 

しかし、私はつまり、他の方法で回避を移動する場合に、バックマスターするために作られたコミットが適用されます。私はメンテナンスブランチにコミットさせるとマスターブランチを楽しみ、それをマージしたい場合は、それは簡単です私の保守支店、どうしたらいいですか?これはチェリーピッキングと考えられていますか?メンテナンス支店をもう一度フォワードすると、問題や競合が発生しますか?

答えて

30

これはまさにgit-cherry-pick

git checkout maintenance 
git cherry-pick <commit from master> 
+0

壊れたリンク。あなたは新しいリファレンスを持っていますか?ありがとう – glarrain

+1

2012年6月16日にそのリンクを正常に取得しました。 – mwalling

+0

素晴らしいです。多分それはちょうど一時的なものでした。ありがとう@mwalling – glarrain

0

はい、それが考慮されてチェリーピッキングのためのユースケースで、いや、それは問題を引き起こすべきではない一般。バックポート時にコミットがきれいに適用されない場合、チェリーピックバックするときにまったく同じ衝突に直面する可能性があります。

0

一般的に、マージを使用してツリーの変更を保守からマスターに移し、リベースしてツリーを「マスター」から「保守」に移動します。これは、マスターブランチにおけるコミットの順序が維持されるようにするためです。

Rebaseは、現在のブランチのすべての変更をフォーク(または最後のrebase)にロールバックし、新しい変更をコピーしてから、変更を再度適用します。

すべてをマスターから変更したくない場合は、必要なものを選択してください。 (他の応答で推奨されるように)「git cherry-pick」を使用する

+2

私は* rebase *についても疑問に思いました。しかし、_maintenance_ブランチが存在すると仮定すると、現在のすべての変更が必要ではありません。開発ブランチをリベースするのが最善のようですが、マスター(または上流の開発ブランチ)で行われたバグ修正をメンテナンスに戻します。 –

11

代替ソリューションは、メンテナンス分岐し修正ための別個の[トピック]ブランチを作成し、内その後、メンテナンスブランチに最初にこのブランチをマージになるであろうマスターブランチ(トランク)。

このワークフローは、Junito C Hamanoさんのブログ投稿、gitの管理者のResolving conflicts/dependencies between topic branches earlyのブログ記事に(多少)記載されています。

チェリーピッキングの結果がになります。は、マージまたはリベースの際に問題を引き起こす可能性があります。トピックベースのワークフローでは、修正プログラムのコピーが1つだけ保持されます。あなたは

git checkout -b merge-branch master 
git rebase --onto=`git merge-base master maintenance` HEAD~1 && git rebase master 

を試すことができますgitの桜ピックを使用して適用することができない複雑なコミットについては

+0

私はリンクされたポストが、競合するかもしれない複数のコミットを追加する方法を好きです。フィーチャーAとBugフィックスBを一緒にマージしてから、どちらかをMasterまたはMaintenanceブランチにマージしてください。これにより、AとBの間の競合が解決されていることを確認できるので、AまたはBのいずれかを先に引っ張ると、後でA + Bのマージを簡単に取り込み、事前にマージされることがわかります。 [リンク先の図3](http://gitster.livejournal.com/27297.html)を参照してください。 –

0

すでに述べたように、チェリーピッキングはおそらく最良の選択肢です。私はちょうどチェリーピッキング中の競合をチェリーピッキングしているコミットの "依存関係"を調べることで解決でき、それらの依存関係を検出して可視化するためにa tool called git-depsをビルドしたことを付け加えたいと思います。ホームページにアクセスすると、2つのYouTube動画が表示されます。最初はツールの概要を示し、2つ目はチェリーピッキング時の競合を避けるためにどのように使用できるかを示しています。

関連する問題