私たちのワークフローに適合する、Gerrit で複数のブランチを操作する適切な方法を特定しようとしています。
現在、ブランチを使用する方法は次のとおりです。マスター ブランチとフィーチャー ブランチがあります。master は磨き上げてリリースに向けて準備したいブランチですが、feature は明らかに集中的な作業の分野です。さて、私たちの特定のケースでは、誰かがバグ修正に取り組むときはいつでも、彼らは:
- master ブランチを対象とした変更を作成する
- 機能ブランチを対象とした変更にチェリーピック
- gerrit コードのレビューが完了したら、両方の変更を送信します。
今私がチェリーピックを理解している方法では、個々のコミットを選択し、それを現在の変更にマージします。その場合、最終的にマージの競合は発生しないと予想されます。実際、このワークフローは GIT だけで完全に機能します。ただし、Gerrit は、おそらくその性質 (ブランチはローカルのようにリモートでマージされず、別の sha タグを取得する) により、最終的に膨大な数の競合するファイルを一覧表示します。
今、私はマージ戦略を適用することでこれらの問題をすべて解決しました (私たちはフィーチャーに、彼らはマスターに)、しかしそれは正しくないと感じています: 何かが伝播されなかった場合、それは単に破棄されました.
私の質問は次のとおりです。最終的に gerrit とのクリーンなマージを生成する、上記のような安全なワークフローはありますか?