これまでのところ、Git フロー モデルは当社でうまく機能していますが、この仮想的な状況を処理するためのソリューションについて疑問に思っています。少し調べてみましたが、このケースに関する適切な用語が不足しているため、Google で検索するのが妨げられた可能性があります。
master
ここに詳述されているように、すべてのリリースがブランチへのマージ コミットからの「もの」である必要がある場合:
0.2.0
では、 をリリースし、次に0.3.0
、そしてをリリースする状況をどのように処理します0.2.1
か? この時点で、リリースは 0.2.x 開発ブランチから実行する必要がありますか (ブランチが存在するか、0.2.0
タグから作成されたと仮定します)? 確かに、パッチ リリースはおそらくかなりの数のコミットが遅れているため、マスターにマージすることはできません。
最善の解決策は、次のようなものです。
git checkout tag-release-0.2.0
git checkout -b some-0.2.1-critical-feature
.. (work) ..
git commit
# At this point, the release-0.2.x-branch is the same as the above release tag
git checkout release-0.2.x-branch
# Merge the feature branch into the patch release branch
git merge some-0.2.1-critical-feature
# NOTE here! Release occurs from the patch branch!
git tag tag-release-0.2.1
# Merge patch fixes into develop
git checkout develop
git merge tag-release-0.2.1
これよりも良い解決策はありますか?ルールがマスターにマージしてリリースを実行することである場合、次のマイナー/メジャーの前にパッチ リリースを行う必要はありませんか?