ブランチ(Branch)とは、Gitにおいて、開発の流れを枝分かれさせる仕組みのことです。「branch(枝)」という英単語のとおり、大元の流れから分岐した作業場所を作ることで、本体に影響を与えずに変更を試せるようになります。
現実世界に例えると、ブランチは書きかけの原稿をコピーして、別のノートで書き直してみるようなものです。元の原稿はそのまま残っているので、うまくいけば反映し、失敗すればノートごと捨てれば済みます。
基本的な仕組み
Gitのリポジトリには、通常「main」(または「master」)と呼ばれる中心となるブランチがあります。新しい機能を作るときや不具合を直すときは、ここから枝分かれさせた作業用のブランチを作り、その中で変更を重ねていきます。作業中の中途半端な状態がmainに混ざらないため、いつでも動く状態を保てます。
なぜブランチを分けるのか
複数の開発者が同じファイルを同時に触ると、変更が衝突して収拾がつかなくなります。ブランチを分けておけば、それぞれが独立して作業を進められます。また、途中まで作った機能を一旦止めて別の急ぎの修正に取りかかる、といった切り替えも簡単に行えます。
マージという合流作業
作業用ブランチでの変更が完成したら、それをmainへ取り込みます。この合流作業をマージと呼びます。多くの現場では、いきなりマージするのではなく、プルリクエスト(マージリクエスト)を作ってレビューを受けてから取り込む流れが取られています。
コンフリクトへの対処
複数のブランチで同じ箇所を別々に書き換えていた場合、マージ時にコンフリクト(衝突)が発生します。Gitはどちらを採用すべきか判断できないため、開発者が手作業でどちらを残すか決める必要があります。こまめにmainの変更を取り込んでおくと、衝突の規模を小さく抑えられます。
代表的なブランチの使い分け
| ブランチの種類 | 役割 | 名前の例 |
|---|---|---|
| main(master) | 公開されている安定した状態 | main |
| 機能追加用 | 新しい機能の開発作業 | feature/login |
| 不具合修正用 | 見つかったバグの修正 | fix/login-error |
ブランチ戦略という考え方
チームでブランチをどう運用するかの決めごとを「ブランチ戦略」と呼びます。厳格に役割を分ける「Git Flow」や、mainと作業ブランチだけのシンプルな「GitHub Flow」などが知られています。チームの規模やリリースの頻度に合わせて選ぶことが大切で、小さなチームに複雑な戦略を持ち込むと、かえって手間が増えます。
ブランチ名の付け方
ブランチ名には、何のための作業かが分かる名前を付けます。多くの現場では「feature/」「fix/」のような接頭辞を付け、その後に内容を続ける書き方が使われています。一覧で見たときに目的が判別できることが目的なので、日付だけや個人名だけの名前は避けたほうが無難です。
作業が終わったら削除してよい
マージが済んだ作業用ブランチは、基本的に削除して構いません。変更の内容はマージによってmainの履歴に残っているためです。使い終わったブランチを残し続けると一覧が見づらくなるので、こまめに整理する運用が一般的です。

コメント