以前の仕事では、各開発者が自分のブランチで作業することで、安定したプレリリース ブランチ (またはセットアップに応じてメイン) の管理と維持が容易になることがわかりました。実稼働インスタンスは 1 つしかないため、同じアプリの複数のバージョンをサポートする必要はありません。
この「プレリリース」ブランチは、ステージングおよび本番リリースを作成する別のブランチ (メイン) があったため、そのように名付けられました。ブランチは、プレリリース ブランチのコードのみをリリース ブランチにマージできるようにセットアップされました。これらのマージは、コード レビューのチェックポイントでした。CI ビルドもこのプレリリース ブランチから作成されており、その一連の作業の開発が完了したときに複雑なマージの問題を軽減するために、「プレリリース」から独自のブランチにマージするのは各開発者次第でした。
開発者がペアを組んで特定の機能の 1 つを共同で作業する必要がある場合、開発者自身のブランチのアクセス許可以外に、他の開発者との作業を妨げるものは何もありませんでした。これは、各チーム内の個人が個別/複数の機能に取り組んでいる分散チームを管理する場合にうまく機能しました。
頻繁な (週に 1 ~ 2 回) 30 分間のステータス更新ミーティングの助けを借りて、私たちはチームとして、特定の QA リリースで何を QA に入れ、何を入れないかを決定しました。
このシステムは機能しましたが、このトピックを検索すると、開発者ブランチに対する多くの憤りが見つかりました。git のローカル リポジトリ機能には多くの熱意があるようです。それでも、それらは同じ問題に対処するための異なる方法にすぎないようです。チェックインの遅延など、ローカルリポジトリが対処するクロスネットワークの問題を考慮していません。