ブランチとは

この記事の結論

  • ブランチとは、本流の履歴から枝分かれさせた、作業用の履歴のことです。Gitでは特定のコミットを指す名札として作られ、コミットを重ねるたびに指す先が前へ進みます。
  • 分けておくと本流を壊さずに試せます。うまくいかなかった枝はまるごと捨てられますし、1つの枝に1つの目的を入れておけば、レビューも取り消しも枝の単位で済みます。
  • 作るのは git switch -c 名前、移動は git switch 名前、一覧は git branch です。役目を終えた枝は本流へ合流させてから消します。

ぶらんち/Branch

本流の履歴から枝分かれさせて、作業を分けて進めるための仕組みです。

最終更新: 2026-09-17

01

ブランチとは何か(意味と読み方)

ブランチとは、バージョン管理システムの上で、本流の履歴から枝分かれさせた作業用の履歴のことです。読み方はそのまま「ぶらんち」、英語では branch と書き、木の「枝」を指す言葉です。幹にあたる本流から枝を伸ばし、その先で作業を進めて、終わったら幹に戻す。この形をそのまま名前にしています。

Gitでのブランチの正体は、ある1つのコミットを指す名札です。枝の上で新しいコミットを作ると、名札がその新しいコミットへ移ります。ファイルを丸ごと複製しているわけではないので、枝を作る操作は一瞬で終わりますし、いくつ作っても手元が重くなりません。「気軽に作って、いらなくなったら消す」という使い方が前提になっています。

多くのプロジェクトでは、公開される本流のブランチに main という名前が使われます。そこから fix/login-error-message のような作業用の枝を伸ばし、動くところまで仕上げてから本流へ戻す、というのが基本の流れです。コマンドの正式な説明は公式ドキュメントのgit-branch(git-scm.com)にまとまっています。

02

ブランチを分けると何が変わるのか

枝を分けずに、全員が本流へ直接コミットしていくとどうなるか。途中まで書いた機能が本流に混ざり、他の人が動かした瞬間に壊れます。ブランチはこれを防ぐための仕組みです。

  • 本流を壊さずに試せる:うまくいかなければ、枝ごと捨てれば元の状態に戻ります。
  • 並行して進められる:機能追加と不具合の修正を、別々の枝で同時に進められます。
  • レビューの単位がそろうプルリクエストは枝の単位で出すので、目的ごとに枝を分けておくと、見る側も読みやすくなります。
  • 切り戻しやすい:問題が見つかったとき、どの枝の変更かを追えれば、影響範囲の見当がつきます。

裏を返すと、1つの枝にいくつも目的を詰め込むと、この利点はほとんど消えます。「この枝は何のための枝か」を一言で言えるかどうかが、分け方の目安になります。

03

ブランチの基本コマンド

最初に覚えるのは次の5つで足ります。git switch は、ブランチの移動に使う新しい書き方です。

ブランチまわりでよく使うコマンド
やりたいことコマンド補足
今あるブランチを一覧するgit branch先頭に * が付いているのが、いま自分がいる枝
枝を作って移動するgit switch -c 名前古い書き方では git checkout -b 名前
枝を移動するgit switch 名前移動前に、手元の変更を記録しておく
枝を作るだけgit branch 名前作成のみで、移動はしない
枝を消すgit branch -d 名前合流していない枝は止められる(-D で強制)

git switchgit checkout は、ブランチの移動という点では同じことができます。git checkout はファイルの復元など別の役割も兼ねていて紛らわしかったため、移動だけを担当するコマンドとして git switch が用意されました。詳しい仕様はgit-switch(git-scm.com)にあります。

04

ブランチ名の付け方

名前は一覧で読むものです。数週間後の自分や、他の人が見て「何の作業か」が分かるかどうかで決めます。

ブランチ名の良い例・避けたい例
避けたい例良い例何が違うか
testfix/login-error-message何を直す枝かが名前だけで分かる
branch2feature/signup-email-check番号ではなく内容で呼べる
新しいブランチfix/article-sort-order半角英数字なので、どのツールでも扱いが揃う
tmpchore/update-docs-link一時的なつもりの枝が残っても、中身が分かる

コツは3つです。1つ目は、種類と内容をスラッシュで区切ること。fix/ feature/ chore/ のような接頭辞をチームで決めておくと、一覧が種類ごとにまとまります。2つ目は半角英数字とハイフンで書くこと。3つ目は、1つの枝に1つの目的しか入れないことです。名前を付ける段階で目的が2つ出てきたら、枝も2つに分けます。

05

AIに実装を任せるときのブランチの使い方

AIコーディングエージェントに実装を頼むと、一度に何ファイルも書き換わることがあります。本流の上で直接やらせると、途中で気が変わったときに戻す手段がなくなります。

順番はこうです。頼むに作業用の枝を切る。その枝の上で書かせる。出てきた差分を自分で読む。納得できたら本流へ合流させる。気に入らなければ、枝ごと捨てて切り直す。本流には最後まで手を触れさせない、という形です。

もう1つ効くのが、案ごとに枝を分けるやり方です。同じ要望に対して違う書き方を試したいとき、枝を2本作ってそれぞれに実装させれば、あとから差分を並べて比べられます。進め方の型はAI時代のGit運用|コミット分割と差分レビューの実践手順を解説にまとめています。

06

ブランチを使うときの注意点

  • 移動する前に手元の変更を片付ける:記録していない変更を抱えたまま枝を移ると、どちらの作業だったか分からなくなります。
  • 枝を長く放置しない:本流との差が開くほど、合流のときにマージで衝突しやすくなります。
  • 共有済みの枝の履歴を書き換えない:他の人の手元と食い違い、後始末が面倒になります。
  • 消す前に合流を確かめる:合流していない枝を強制的に消すと、その枝のコミットは辿りにくくなります。

手を動かしながら覚えたい場合は、無料で公開されているPro Git 日本語版(git-scm.com)の「Gitのブランチ機能」の章が、図つきで順を追って読めます。

07

関連用語

08

関連記事

09

よくある質問

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 で強制的に消します。