アジャイルと連携してフィーチャベースで機能をリリースできるようにする新しい分岐ポリシーを採用しており、master
ブランチとQA
ブランチを永続ブランチとしてリリースしています。ナイトリービルドはQA
に基づいており、リリースはmaster
になります。開発者は各ストーリーのフィーチャーブランチを作成します。すべてのフィーチャブランチはmaster
から分岐され、テストのためにQA
にマージされ、フィーチャブランチが後でリリースするためにmaster
にマージされます。これは、次のシナリオまで、細かいです:アジャイルブランチワークフローのためのGitマージ戦略
- 開発者A(「ロッド」)、
feature/RodsFeature
を作成したいくつかの作業を行い、QA
にマージしている(ただし、まだmaster
) - 開発者B(「ジェーン」)
feature/JanesFeature
作成した、いくつかの作業を行い、今QA
- 競合が今
feature/RodsFeature
QA
に導入された変更によって引き起こされる、ジェーンのために発生しているマージにマージしようとしています
JaneがQAをバイパスしてfeature/JanesFeature
をmaster
にマージすると、feature/RodsFeature
がまだmaster
にないため、競合は発生しません。しかし、明白な理由から、JaneはQA
にマージする必要があります。この矛盾を解決するために、彼女はRodの変更を自分のフィーチャーブランチに統合し、その矛盾を解決してからマージを実行することができます。彼女がフィーチャーブランチをmaster
にマージすると、 QAテストがまだ保留中です。
QA
ブランチで直接コンフリクトを解決し、後でmaster
にマージするためにJaneのフィーチャブランチをそのまま残すことで回避することができます。しかし、これはコードレビューポリシーを破棄します。マージはピアによって承認される必要があります。これにより、ローカルでQA
にマージされ、プルリクエストやピアレビューなしでリモートにプッシュされます。
この場合、「ベストプラクティス」とは何でしょうか?
QAブランチにマージされているが、1が拒否されていると機能2は、即時放出のためにスケジュールされています:
も参照してください。この問題は、ワークフローを変更して、機能をQA /開発ブランチにマージしてから受け入れられないようにすることで修正されました。 – Warpzit