Git-flow分岐モデル ここに記載 および tools here を使用しようとする場合、この状況をどのように処理する必要がありますか?
1.0リリースと2.0リリースを作成しました。次に、1.0用の修正プログラムを作成する必要があります。 1.0タグからホットフィックスブランチを作成し、そこに修正を実装します。しかし、その後はどうなりますか?
通常、マスターにマージし、そこに1.1リリースタグを配置します。しかし、1.1をmasterの2.0の後のポイントにマージすることはできません。
ホットフィックスブランチにリリースタグを置くことができると思いますが、リリースタグを含むマスターの横に永続的なブランチが作成されます。それは正しい方法ですか?
Gitフローには「サポート」ブランチの概念があるようです。これは、以前のリリースに修正プログラムを追加するために使用されます。
このスレッドには詳細情報があります 、これらの例:
git checkout 6.0
git checkout -b support/6.x
git checkout -b hotfix/6.0.1
...修正してから:
git checkout support/6.x
git merge hotfix/6.0.1
git branch -d hotfix/6.0.1
git tag 6.0.1
またはgit flow
コマンドを使用して
git flow support start 6.x 6.0
git flow hotfix start 6.0.1 support/6.x
...変更を行います:
git flow hotfix finish 6.0.1
興味深い質問です!リンクしたフローは、マスターが生産を追跡できることを前提としています。これは、製品バージョンが厳密に増加している場合にのみ機能します。これは通常、1つの製品バージョンのみを持つWebサイトに当てはまります。
複数の実動バージョンを維持する必要がある場合、実動を追跡する1つのブランチでは不十分です。解決策は、生産を追跡するためにマスターを使用しないことです。代わりに、release1
、release2
などのブランチを使用します。
このアプローチでは、ホットフィックスブランチさえ必要ない場合があります。 release1
ブランチの問題を修正できます。修正が十分であれば、release1.1
ブランチにrelease1
タグを作成します。
git-flowは、マスターが追跡しやすいように、一度に1つのリリースラインのみをサポートしていると想定しています。 1つ以上を維持している場合は、git-flowプロセスを変更して、サポートしている個別のリリース(master-1、master-2)の複数のトラッカーを持つようにする必要があります。最新のリリースラインの特定のトラッカー(master-2の代わりのマスター)に加えて、またはその代わりに、引き続きmasterを使用して最新のリリースラインを追跡できます。
残念ながら、使用しているgit-flowツールはおそらく変更する必要がありますが、gitコマンドでこの特定のケースを直接処理するためにgit-flowプロセスに精通していることを願っています。
git config --add gitflow.multi-hotfix trueこのコマンドはうまくいくようです!