ブランチとは
この記事の結論
- ブランチとは、本流の履歴から枝分かれさせた、作業用の履歴のことです。Gitでは特定のコミットを指す名札として作られ、コミットを重ねるたびに指す先が前へ進みます。
- 分けておくと本流を壊さずに試せます。うまくいかなかった枝はまるごと捨てられますし、1つの枝に1つの目的を入れておけば、レビューも取り消しも枝の単位で済みます。
- 作るのは git switch -c 名前、移動は git switch 名前、一覧は git branch です。役目を終えた枝は本流へ合流させてから消します。
ぶらんち/Branch
本流の履歴から枝分かれさせて、作業を分けて進めるための仕組みです。
最終更新: 2026-09-17
ブランチとは何か(意味と読み方)
ブランチとは、バージョン管理システムの上で、本流の履歴から枝分かれさせた作業用の履歴のことです。読み方はそのまま「ぶらんち」、英語では branch と書き、木の「枝」を指す言葉です。幹にあたる本流から枝を伸ばし、その先で作業を進めて、終わったら幹に戻す。この形をそのまま名前にしています。
Gitでのブランチの正体は、ある1つのコミットを指す名札です。枝の上で新しいコミットを作ると、名札がその新しいコミットへ移ります。ファイルを丸ごと複製しているわけではないので、枝を作る操作は一瞬で終わりますし、いくつ作っても手元が重くなりません。「気軽に作って、いらなくなったら消す」という使い方が前提になっています。
多くのプロジェクトでは、公開される本流のブランチに main という名前が使われます。そこから fix/login-error-message のような作業用の枝を伸ばし、動くところまで仕上げてから本流へ戻す、というのが基本の流れです。コマンドの正式な説明は公式ドキュメントのgit-branch(git-scm.com)にまとまっています。
ブランチを分けると何が変わるのか
枝を分けずに、全員が本流へ直接コミットしていくとどうなるか。途中まで書いた機能が本流に混ざり、他の人が動かした瞬間に壊れます。ブランチはこれを防ぐための仕組みです。
- 本流を壊さずに試せる:うまくいかなければ、枝ごと捨てれば元の状態に戻ります。
- 並行して進められる:機能追加と不具合の修正を、別々の枝で同時に進められます。
- レビューの単位がそろう:プルリクエストは枝の単位で出すので、目的ごとに枝を分けておくと、見る側も読みやすくなります。
- 切り戻しやすい:問題が見つかったとき、どの枝の変更かを追えれば、影響範囲の見当がつきます。
裏を返すと、1つの枝にいくつも目的を詰め込むと、この利点はほとんど消えます。「この枝は何のための枝か」を一言で言えるかどうかが、分け方の目安になります。
ブランチの基本コマンド
最初に覚えるのは次の5つで足ります。git switch は、ブランチの移動に使う新しい書き方です。
| やりたいこと | コマンド | 補足 |
|---|---|---|
| 今あるブランチを一覧する | git branch | 先頭に * が付いているのが、いま自分がいる枝 |
| 枝を作って移動する | git switch -c 名前 | 古い書き方では git checkout -b 名前 |
| 枝を移動する | git switch 名前 | 移動前に、手元の変更を記録しておく |
| 枝を作るだけ | git branch 名前 | 作成のみで、移動はしない |
| 枝を消す | git branch -d 名前 | 合流していない枝は止められる(-D で強制) |
git switch と git checkout は、ブランチの移動という点では同じことができます。git checkout はファイルの復元など別の役割も兼ねていて紛らわしかったため、移動だけを担当するコマンドとして git switch が用意されました。詳しい仕様はgit-switch(git-scm.com)にあります。
ブランチ名の付け方
名前は一覧で読むものです。数週間後の自分や、他の人が見て「何の作業か」が分かるかどうかで決めます。
| 避けたい例 | 良い例 | 何が違うか |
|---|---|---|
| test | fix/login-error-message | 何を直す枝かが名前だけで分かる |
| branch2 | feature/signup-email-check | 番号ではなく内容で呼べる |
| 新しいブランチ | fix/article-sort-order | 半角英数字なので、どのツールでも扱いが揃う |
| tmp | chore/update-docs-link | 一時的なつもりの枝が残っても、中身が分かる |
コツは3つです。1つ目は、種類と内容をスラッシュで区切ること。fix/ feature/ chore/ のような接頭辞をチームで決めておくと、一覧が種類ごとにまとまります。2つ目は半角英数字とハイフンで書くこと。3つ目は、1つの枝に1つの目的しか入れないことです。名前を付ける段階で目的が2つ出てきたら、枝も2つに分けます。
AIに実装を任せるときのブランチの使い方
AIコーディングエージェントに実装を頼むと、一度に何ファイルも書き換わることがあります。本流の上で直接やらせると、途中で気が変わったときに戻す手段がなくなります。
順番はこうです。頼む前に作業用の枝を切る。その枝の上で書かせる。出てきた差分を自分で読む。納得できたら本流へ合流させる。気に入らなければ、枝ごと捨てて切り直す。本流には最後まで手を触れさせない、という形です。
もう1つ効くのが、案ごとに枝を分けるやり方です。同じ要望に対して違う書き方を試したいとき、枝を2本作ってそれぞれに実装させれば、あとから差分を並べて比べられます。進め方の型はAI時代のGit運用|コミット分割と差分レビューの実践手順を解説にまとめています。
ブランチを使うときの注意点
- 移動する前に手元の変更を片付ける:記録していない変更を抱えたまま枝を移ると、どちらの作業だったか分からなくなります。
- 枝を長く放置しない:本流との差が開くほど、合流のときにマージで衝突しやすくなります。
- 共有済みの枝の履歴を書き換えない:他の人の手元と食い違い、後始末が面倒になります。
- 消す前に合流を確かめる:合流していない枝を強制的に消すと、その枝のコミットは辿りにくくなります。
手を動かしながら覚えたい場合は、無料で公開されているPro Git 日本語版(git-scm.com)の「Gitのブランチ機能」の章が、図つきで順を追って読めます。
関連用語
関連記事
よくある質問
Q1. ブランチとは何ですか?
本流の履歴から枝分かれさせた、作業用の履歴のことです。Gitでは特定のコミットを指す名札として作られ、その枝でコミットを重ねるたびに指す先が前へ進みます。本流を壊さずに作業を進めるための仕組みです。
Q2. ブランチとコミットは何が違いますか?
コミットは変更を1つの区切りとして履歴に記録する操作です。ブランチは、そのコミットの並びを本流と分けて進めるための名札です。枝を作っただけでは何も記録されないので、作業の記録はコミットで残します。
Q3. ブランチはどんなときに作りますか?
機能追加、不具合の修正、試してみたいことなど、目的1つにつき1本作ります。目的が終わったら本流へ合流させて消す、という短い周期にしておくと、他の人の変更とぶつかりにくくなります。
Q4. ブランチ名はどう付ければよいですか?
名前だけで何の作業かが分かるようにします。fix/login-error-message のように種類と内容をスラッシュで区切り、半角英数字とハイフンで書いておくと、一覧で見分けやすく、ツールをまたいでも扱いが揃います。
Q5. 使い終わったブランチは消してもよいですか?
本流へ合流させたあとなら消してかまいません。合流させた時点で変更の記録は本流に残っているので、枝の名札を消しても履歴は消えません。合流していない枝を git branch -d で消そうとした場合は、the branch '名前' is not fully merged というエラーが出てコマンド自体が失敗します。消してよいか確認を聞かれるわけではないので、それでも要らない枝だと判断できたときだけ git branch -D で強制的に消します。