リリースブランチをマスターにマージする必要があります


9

私のチームはGit Stable Mainlineブランチモデルを使用しており、最初のリリースブランチを作成しようとしています。これまで読んだことから、リリースブランチはマスターブランチからサイロ化されており、完全にマスターにマージされることはないようです。代わりに、リリースブランチで修正が行われた場合、通常はマスターブランチにチェリーピックされます。現在のリリースを次のリリースの開発から完全に分離したまま、現在のリリースの準備と同時にマスターで次の機能セットを開発できるようにしたいので、これは私にとって意味があります。

これらのリリースブランチはどのくらいの期間保持する必要がありますか?それらを完全にマスターに戻す必要がある場合はありますか?


2
使用する分岐戦略は、組織のワークフローと特定の要件に完全に依存します。
Robert Harvey

How long should these release branches be kept around for?ソースコードから複製したいそのリリースのエラーメッセージを受け取ることを期待している限り。ブランチのサーバー上のフットプリントが小さいため、リリースブランチはまったく削除しません。デルタのみがハードディスクメモリを必要とする
k3b 2017

1
cherry picking一人ひとりにコミットリリースに支店マスターまたはmerging リリースへのマスターは、同じことは、あなたが「見る」していないことを受け入れる技術であるcherry picksGitの歴史の中で。ですから、gits オプションを使用mergingして各修正をマスターに戻し--no-ff、履歴に追加のリリースブランチが表示されるようにしたいと思います。
ティモシートラックル2017

これはどういう意味ですかbitsnbites.eu/a-stable-mainline-branching-model-for-git 彼は明示的にリリースブランチをマージしないでください
Ewan

皆さまからのフィードバックありがとうございます。@Ewanはい。ただし、Microsoftによって作成されたGitの一般的なドキュメントもいくつか読んだのですが、リリースブランチ全体がマスターにマージされなかったようです。

回答:


6

これらのブランチはどのくらいの期間保持する必要がありますか?

ここで私の心に浮かぶ最初の答えは:

最初にリリースブランチを作成するのはなぜですか?

本番環境で使用するバージョンにサポートを提供できるようにする場合は、そのバージョンが顧客と共存する限り存続する必要があります。(LTSサポートなど、複数のブランチがあり、少し複雑になります)

安定化作業を進行中の新しい開発から分離する場合、バージョンがデプロイされたら、そのブランチはもう必要ありません。ここで、これは継続的デリバリーパイプラインを示唆します。バグは次のリリースで修正されますが、可能な限り頻繁に発生します。マスターブランチを1日に複数回展開する安定したブランチと見なすようにこれを推進する人もいます。他の人は彼らのスプリントに同期し、2〜3週間ごとにリリースします。

それを完全にマスターにマージする必要がありますか?

ご想像のとおり、この分岐戦略を採用した理由はすべて異なります。継続的デリバリースタイルの場合、ブランチは二度と使用されないため、機能ブランチやバグ修正ブランチと同じように扱い、マスターにマージして忘れてしまう可能性があります。

ただし、LTSスタイルを目指している場合、特にそのようなブランチが複数ある場合は、マージされない可能性があります。ここで、修正をすべてのリリースブランチに適用し、そのうちの1つからチェリーピックして、その修正をマスターにマージします。このシナリオで最後に行うことは、マスターからの変更がマスターにプルアップされ、マスターではなく競合が解決される他の機能ブランチと同様に扱うことです。

製品のライフサイクルとチームのワークフローについての知識がなければ、ここでより正確なアドバイスを思いつくことは困難です。


これは、マージ後にブランチが失われることを意味しますが、そうではありません。LTSモードでもリリースブランチをマスターにマージする必要があります。リリースブランチをマージしない理由はありません。
バシレフ2017

1
ブランチが失われるのではなく、LTSブランチを体系的にマージすると、アクティブなすべてのLTSブランチの複製がマージされます。バグ修正は、メインに一度マージするだけでよく、最新バージョンはおそらくLTSに含まれておらず、マスターブランチの状態により近いため、LTSブランチからはマージしない可能性があります。このシナリオでは、最新バージョンからチェリーを選択します。LTSブランチ自体がマスターにプッシュされることはほとんどありません。マージ後にブランチが失われるかどうかは関係ありません。
ニュートピア

安全なマージの複製に、安全でないチェリーピックを複製することを好むのはなぜですか?「安全」とは、暗号で保護された変更の追跡と伝達を意味します。
Basilevs 2017

同様のアプローチは、最も古いブランチに修正を適用し、古いものから新しいものにマージすることにより、チェリーピックなしで機能します。サクランボを避けることができるなら、なぜそれらを使うのですか?安定メインラインモデルで何かを誤解しているようです...
Basilevs
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.