バグ修正はgit-flowモデルのどこにありますか?


14

一般的に呼ばれる、Git-flowモデルの修正プログラムは、特定のhotfix-*ブランチに導入され、リリースの直前に小さな統合修正がrelease-*ブランチに導入されます。前のバージョンからの一般的なバグ修正には場所がないようです。

どこに表示されますか?彼らbug-*develop(ちょうどfeatureブランチのように)分岐する独自のブランチにあるべきですか?


3
リリースされたコードの重要ではないバグが、アプリケーションが現在実行している動作とは異なる動作を生成する小さな機能と異なるのはなぜですか?
バートヴァンインゲンシェナウ

@BartvanIngenSchenau feature-*ブランチにすることをお勧めしていますか?誤った動作の修正は機能とみなすことができますか?

1
@Shoe Bartの意味するところは、それらを機能として扱う必要があるということです。必ずしも同じブランチプレフィックスを使用する必要はありません。
ダークホッグ

3
gitのフローでは、以外の任意の支店:@Shoe masterdeveloprelease-*またはhotfix-*あなたが好きな接頭辞を使用して、バグのために別の接頭辞を使用することができるように、機能ブランチです。また、指定どおりに動作する誤った動作と、仕様から逸脱した誤った動作の違いは何ですか?どちらの場合も、それは誤った動作ですが、最後のものだけがバグです。
バートヴァンインゲンシェナウ

回答:


9

簡単な答え:はい、予定されている次のリリースに入るバグ修正のブランチは、機能ブランチにあるべきです。機能ブランチまたはバグ修正のためにこれらのブランチに名前を付ける方法は、あなたとあなたのチームの標準次第ですが、Gitflowをフォローしている場合は、同じように扱われるべきです。


バート・ファン・インゲン・シェナウのコメントは良い点をもたらします。

:Gitflowは5分岐タイプありmasterdevelop(接頭辞、修正プログラムの枝hotfix-)、リリースブランチ(接頭辞release-ザ、および機能ブランチをmasterし、develop枝が実行時間の長い枝であり、あなたがそれらに直接コミットしません。release-枝が線を描画するために作られています特定のリリースの場合は、次のバージョンの識別とリリースの間のバグ修正をサポートします。hotfix-ブランチは、特に重要なサイクル外の本番リリースfeature-用です。ブランチは、将来のリリースの個々の機能の開発用です。

PRSは機能ブランチにコミットする個々の開発者は別に使用している環境から来て、何も直接にコミットすべきではないmasterdevelopまたはリリースブランチ。これにより、すべての変更がコードレビューされ、適切なテストカバレッジが確保され、変更が行われる前にCI環境でテストに合格することが保証されます。 tプレリリースのバグ修正または変更を直接リリースブランチにコミットしてから、開発および機能ブランチにそれらを取り込むことに問題がある。

特定のケースでは、release-ブランチは適切な場所ではありません。ソフトウェアはすでにリリースされており、にありmasterます。リリースがマスターにマージされ、そこでタグが付けられると、その特定のリリースのリリースブランチはその目的を超えて存在し、必ずしも存在する必要はありません。ブランチのクリーンアップに積極的であれば(誰もがそうすべきだと思います)、これはオプションではありません。

修正が重要でない場合、修正プログラムのブランチはどちらにも当てはまらないようです。ホットフィックスブランチの目的は、進行中の開発を妨げることなく、誰かが重要な変更を本番環境に非常に迅速に取得できるようにすることです。開発チームの標準ではなく、これらを使用することは例外です。一般に、重要な修正プログラムは例外的なケースである必要があります。

残っているのは機能ブランチのみです。機能ブランチに関する質問でリンクされているページのセクションには、機能ブランチは「トピックブランチと呼ばれることもある」とさえ記載されていることに注意してください。変更が今後のリリースを対象としており、修正プログラムの基準を満たしていない場合、これらのブランチのいずれかにあるはずです。


ブランチをマスター、開発、またはリリースするための直接的なコミットは行わないことに同意します。しかし、リリースブランチでバグを見つけた場合、PRのフローはどうあるべきか、リリースブランチと開発ブランチの両方で修正する必要があります。リリースブランチ全体を開発にマージする準備がまだ整っていない場合、これには独自の課題がありますが、バグ修正は両方の場所で行う必要があります。
樹液

@Sap A新しい疑問が良いことが、あなたはそれを投稿場合は、修正プログラムは、それが両方にマージする必要があることをとても重要である理由を説明してくださいだろう-それはに導入される前に重大な問題が見つからなかっあった暗示しているようだことdevelopはありません、導入されてからリリースブランチが作成されるまでの間、および/またはリリースブランチが長期間存在することがわかりました。単純に、唯一の選択肢はチェリーピックであると信じています(修正とプルリクエストをリリースブランチに提案し、リリースブランチにマージし、プルリクエストを介して開発にチェリーピックします)。
トーマスオーエンズ

4

単一のコミットの場合は、明確に識別されたコミットを作成し、開発ブランチの上にプッシュします。それ以外の場合は、機能ブランチを作成します。

また、git-flowの作者から、あなたがまさに求めていることを言っているコメントがあります:バグ修正ブランチの欠落#24


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