フィーチャーブランチ

2020年5月7日

フィーチャーブランチとは開発者が新しい機能の作業を開始するときに分岐するソースコードの分岐パターンです。この分岐で機能の作業をすべて行い、機能が完了したら変更分をチームの他のメンバーと統合します。

作業の間に、チームの他のメンバーがコミットした変更を自身のブランチに取り込む場合があります。こうすることにより、機能が完了した後の統合の負担を軽減できますが、その時点まで変更を共通のコードベースに取り込むことはありません。そのため、異なるフィーチャーブランチで作業する2人のメンバーは、2人目が自分の作業を共通のコードベースにマージするまで、それぞれの作業を統合しません。

フィーチャーブランチは、特にオープンソース開発に適している人気の高い手法です。機能で行われたすべての作業が、完了するまでチームの共通コードベースから離れて保持されるため、マージに関連するすべてのリスクをその時点まで遅らせることができます。ただし、この分離により問題の早期発見が妨げられます。さらに深刻な問題として、リファクタリングが促進されなくなります。リファクタリングが行われなければ多くの場合、コードベースの健全性が大幅に低下します。

フィーチャーブランチ使用の影響は、機能を完了するまでの期間によって大きく異なります。通常、1~2日で機能を完了するチームは統合を十分頻繁に行うことができるため、統合が遅れる問題を回避できます。機能を完了するのに数週間や数か月かかるチームでは、このような問題に直面することがより多くなります。

詳細情報

フィーチャーブランチの詳細については、ソースコードブランチの管理に関するパターンの紹介記事Patterns for Managing Source Code Branchesをご覧ください。この中で、フィーチャーブランチパターンがソフトウェア開発におけるブランチ使用の広い枠組みの中で位置づけられています。フィーチャーブランチで作業する際のワークフローを説明し、統合頻度に関連するトレードオフについて検討し、継続的インテグレーションという代替案を検討します。

改定

このURLでの最初の投稿を公開したのは2009年9月3日です。Patterns for Managing Source Code Branchesを公開したときに、このページを短い要約にカットしました。