git-flowに従って、以前のリリースの修正プログラムをどのように処理する必要がありますか?


101

ここ文書化されているgit-flow分岐モデルを試そうとすると、ここで説明さツール使用、この状況にどのように対処する必要がありますか。

1.0リリースと2.0リリースを作成しました。次に、1.0のホットフィックスを作成する必要があります。1.0タグからホットフィックスブランチを作成し、そこに修正を実装します。しかし、それではどうでしょうか。

通常は、マスターにマージし、そこに1.1リリースタグを配置します。しかし、マスターで1.1を2.0以降のポイントにマージすることはできません。

ホットフィックスブランチにリリースタグを置くことはできると思いますが、マスターの横に、リリースタグを含む永続的なブランチが作成されます。それは正しい方法ですか?


Gitフローと複数の並行リリースブランチを持つマスターの重複の可能性[他の質問の方が新しいですが、より有用な回答があるため、この質問に重複としてフラグを付けました]
danio

回答:


74

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

?これらのサポートブランチを保持するか、しばらくしてから削除します
Evan Hu

@EvanHuええ、あなたがどこかに本番ブランチを持っている限り、それらを確実に保管してください。その後、それは歴史的な記録の問題です。ホットフィックスが再発する場合は、どのように修正されたかを知りたい場合があります。
クラスメルボーン2017年

ホットフィックスでリリースする必要がありますよね。どうすればそれができますか?
Ravindranath Akila 2017年

33

興味深い質問です!リンクしたフローは、マスターが制作を追跡できることを前提としています。これは、製品バージョンが厳密に増加している場合にのみ機能します。これは通常、製品版が1つしかないWebサイトに当てはまります。

複数の製品バージョンを維持する必要がある場合、製品を追跡するための1つのブランチでは不十分です。解決策は、マスターを使用して生産を追跡しないことです。代わりに、使用の枝が好きrelease1release2など、

このアプローチでは、修正プログラムのブランチは必要ない場合もあります。release1ブランチで問題を修正できます。修正が十分であれば、ブランチにrelease1.1タグを作成しますrelease1


git-flowを変更して、リリースブランチのリリースタグを設定できます。これはかなり大きな変更です。現在のスクリプトが壊れます。また、マスターには何が含まれますか?
Klas Mellbourn 2013

3
git-flow複数の製品バージョンをサポートする必要がある場合、このツールは適していません。この回答で提案されているワークフローでは、マスターはまったく使用されていません。開発ブランチマスターに名前を付けることができます。結局のところ、これは単なる名前です。
Andomar 2013

複数のproducitonバージョンを追跡GitFlowサポート:gitversion.readthedocs.io/en/latest/git-branching-strategies/...
アンドレL

7

git-flowは、マスターが都合よく追跡できる、一度に1つのリリースラインのみをサポートしていると想定しています。1つ以上を維持している場合は、git-flowプロセスを変更して、サポートしている個別のリリース(master-1、master-2)の複数のトラッカーを設定する必要があります。最新のリリースラインの特定のトラッカー(master-2の代わりにマスター)に加えて、またはその代わりに、masterを使用して最新のリリースラインを追跡し続けることができます。

残念ながら、使用している可能性のあるgit-flowツールはおそらく変更する必要がありますが、うまくいけば、この特定のケースをgitコマンドで直接処理するgit-flowプロセスに精通していることでしょう。


git flowプロセスを変更すると、別の何かになります。一部のモデルを(単に拡張するだけでなく)修正する必要がある場合、作成者の述べたとおりに成功します。私たちが議論しているトピックへの私の答えをチェックしてください。
Victor Yarema

0

git config --add gitflow.multi-hotfix trueこのコマンドは私にはうまくいくようです!

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