Stage 2・中級編 ー Lesson 2-1

git branch とは? ブランチを切ってみよう

git branch でコミット履歴を枝分かれさせ、git switch で行き来する

💡 たとえるなら

セーブデータを複製して別ルートを試す感覚。失敗してもメインのセーブは無事

Stage 1 では1本道のコミット履歴を作ってきました。ここからは 履歴を枝分かれさせる テクニック、ブランチ を学びます。「実験用のもう1本」を作ることで、メインの作業を壊さずに自由に試せるようになります。

ブランチって何?

ブランチは、コミット履歴の 枝(えだ) のことです。今までずっと使っていた main ブランチも、実はブランチの1つ。main から枝を分ければ、そこに別のコミットを積み上げていけます。

A B C main D feature main から枝を生やして「feature」ブランチを作る main は触らずに、別ルートで実験できる!

ブランチの嬉しさ:

  • mainを壊さずに新機能を試せる — feature ブランチで実験 → うまくいったら main に取り込む(次レッスンの merge)
  • 複数の作業を並行できる — バグ修正用と新機能用、別々のブランチで進められる
  • 失敗してもブランチごと捨てればOK — 「やっぱりナシ」が安全

注意:このレッスンは git switch を使います

このレッスンでは、ブランチ操作に git switch(Git 2.23 以降で追加)を使います。古い Git だと switch が無くて怒られるので、先にバージョンを確認しましょう。

$ git --version
git version 2.43.0 ← 2.23 以上ならOK
⚠️ 2.23 より古い場合は git checkout を使ってください
Git 2.23(2019年8月)より前は switch が存在しません。このレッスンの switchcheckout に置き換えれば全部動きます(対応表は下のコラムを参照)。
古いままで作業を続けるとセキュリティ修正も受けられないので、可能なら Stage 1-2 の方法で再インストールして最新版に更新するのを強くおすすめします。

ブランチを作る:git branch / git switch -c

my_project の中で次を打ってみます。

# いまどのブランチにいるかを確認
$ git branch
* main
# 新しいブランチ「feature」を作って、すぐに乗り換える
$ git switch -c feature
Switched to a new branch 'feature'
# もう一度確認すると、feature にいる
$ git branch
  main
* feature

* がついているのが今いるブランチ。ここから git add / git commit をすると、コミットは feature ブランチに積まれるmain は影響を受けません。

💡 git switch -c = 「作って乗り換える」
-ccreate の意味。「ブランチを作るだけ」なら git branch feature、「すでにあるブランチに乗り換える」だけなら git switch feature

ブランチを行き来する:git switch

メインに戻りたくなったら:

$ git switch main
Switched to branch 'main'

git switch で行き来するたびに、作業フォルダ(ファイルの中身) がそのブランチの最新状態に切り替わります。feature で作ったファイルは main に戻ると見えなくなり、main に戻ると元の状態に戻る — これが「別ルート」の実体です。

⚠️ コミットしてないファイルがあると切り替えられない
ブランチを切り替える前に git status で「クリーン」(変更なし)を確認しましょう。中途半端な変更があるなら、まず commit するか、Stage 3-1 の stash で一時退避します。

ブランチを消す:git branch -d

不要になったブランチは削除できます。

$ git branch -d feature
Deleted branch feature (was a1b2c3d).

-d--delete。中身がmainにマージされていない場合は安全のため拒否されます。「mainにマージしてないけど捨てたい」場合は -D(大文字)で強制削除。

💡 自分が今いるブランチは消せない
消したいブランチに自分がいる状態だと拒否されます。先に git switch main で別のブランチに移ってから削除しましょう。

やってみよう:「別ルート」を体感する

ここまで学んだ branch / switch をまとめて手を動かしてみましょう。my_project の中で:

# 現状確認:main にいて、memo.txt があるはず
$ git status
$ ls
memo.txt
# experiment ブランチを作って乗り換える
$ git switch -c experiment
# experiment 専用のファイルを追加してコミット
$ echo "実験中のメモ" > lab.txt
$ git add lab.txt
$ git commit -m "実験ファイルを追加"
$ ls
lab.txt memo.txt
# main に戻ってみる → lab.txt が消える!
$ git switch main
$ ls
memo.txt
# もう一度 experiment に戻ると、lab.txt が復活
$ git switch experiment
$ ls
lab.txt memo.txt

ブランチを切り替えるたびに 作業フォルダの中身そのものが変わる のが体感できましたか? これがブランチの本質です。lab.txt は experiment ブランチでだけ存在し、main からは見えません。

💡 もちろん experiment は残したままにできる
experiment ブランチは消さずに残しておけば、いつでも git switch experiment で戻れます。次のレッスンで、これを main に取り込む(マージ) 方法を学びます。

ブランチ名を変える:git branch -m

ブランチ名を後から変えたいときは:

# 今いるブランチの名前を変える
$ git branch -m new-name
# 別のブランチ「old」を「new」にリネーム
$ git branch -m old new

-m--move

コラム:checkout はどうなった?

「ググったら全部 checkout で書いてあるんだけど…」 と思った方へ。

昔の Git では git checkout -b feature のように checkout がブランチ操作にも使われていました。今でも動きますが、checkout は「ブランチ切替」と「ファイル復元」の 2つの役割が混ざっていてわかりにくい ので、Git 2.23(2019年8月)から switch(ブランチ切替)restore(ファイル復元) に分かれました。

新旧の対応表:

昔の書き方(checkout)今の書き方このサイトでの解説
git checkout featuregit switch featureこのレッスン
git checkout -b featuregit switch -c featureこのレッスン
git checkout maingit switch mainこのレッスン
git checkout -- file.txtgit restore file.txtStage 2-5
git checkout HEAD~3git switch --detach HEAD~3(上級・本サイト範囲外)

古い Git を使っている方へ

Git のバージョンが 2.23 より前なら、switch のところを そのまま checkout に読み替えてください。動作はほぼ同じです:

このレッスンの書き方古い Git でのコマンド
git switch -c featuregit checkout -b feature
git switch maingit checkout main

ただし古いままだとセキュリティ修正も来ないので、Stage 1-2 の手順で再インストールするのを推奨します。

検索ヒント

ググるときは git switch 使い方」 より git checkout -b で検索した方が情報量が多いのが現状(2026年時点)。検索するときは古い書き方でも構いません、見つけた checkout を上の対応表で switch / restore に読み替えればOKです。

コマンド早見表

コマンド役割
git branchブランチ一覧を表示(* が今いるブランチ)
git branch <name>ブランチを作る(乗り換えはしない)
git switch <name>既存のブランチに乗り換える
git switch -c <name>ブランチを作って、そこに乗り換える
git branch -d <name>ブランチを削除(マージ済みのみ)
git branch -D <name>ブランチを強制削除
git branch -m <new>今いるブランチの名前を変える

このレッスンのまとめ

できるようになったこと
✅ ブランチが「コミット履歴の枝」だとわかった
git switch -c でブランチを作って切り替えられる
git switch で行き来できる
git branch -d で削除できる
✅ 古い checkout = 今の switch + restore の関係を理解した

次のレッスンでは、feature ブランチで作った変更を main に取り込む(マージする) 方法を学びます。

✏️ 理解度チェック

0 / 3 正解

各問題、選んだ瞬間に正解と解説が表示されます。気軽に試してください。

  1. Q1. 新しいブランチを作るコマンドは?
  2. Q2. ブランチを切り替えるコマンド(現在の推奨)は?
  3. Q3. ブランチを作ると同時に切り替えるショートカットは?

© 2026 git-ready-easy — プログラミング未経験でもわかる git 入門