Stage 2・中級編 ー Lesson 2-1
git branch とは? ブランチを切ってみよう
git branch でコミット履歴を枝分かれさせ、git switch で行き来する
💡 たとえるなら
セーブデータを複製して別ルートを試す感覚。失敗してもメインのセーブは無事
Stage 1 では1本道のコミット履歴を作ってきました。ここからは 履歴を枝分かれさせる テクニック、ブランチ を学びます。「実験用のもう1本」を作ることで、メインの作業を壊さずに自由に試せるようになります。
ブランチって何?
ブランチは、コミット履歴の 枝(えだ) のことです。今までずっと使っていた main ブランチも、実はブランチの1つ。main から枝を分ければ、そこに別のコミットを積み上げていけます。
ブランチの嬉しさ:
- mainを壊さずに新機能を試せる — feature ブランチで実験 → うまくいったら main に取り込む(次レッスンの merge)
- 複数の作業を並行できる — バグ修正用と新機能用、別々のブランチで進められる
- 失敗してもブランチごと捨てればOK — 「やっぱりナシ」が安全
注意:このレッスンは git switch を使います
このレッスンでは、ブランチ操作に git switch(Git 2.23 以降で追加)を使います。古い Git だと switch が無くて怒られるので、先にバージョンを確認しましょう。
git checkout を使ってくださいGit 2.23(2019年8月)より前は
switch が存在しません。このレッスンの switch を checkout に置き換えれば全部動きます(対応表は下のコラムを参照)。古いままで作業を続けるとセキュリティ修正も受けられないので、可能なら Stage 1-2 の方法で再インストールして最新版に更新するのを強くおすすめします。
ブランチを作る:git branch / git switch -c
my_project の中で次を打ってみます。
* がついているのが今いるブランチ。ここから git add / git commit をすると、コミットは feature ブランチに積まれる。main は影響を受けません。
git switch -c = 「作って乗り換える」-c は create の意味。「ブランチを作るだけ」なら git branch feature、「すでにあるブランチに乗り換える」だけなら git switch feature。
ブランチを行き来する:git switch
メインに戻りたくなったら:
git switch で行き来するたびに、作業フォルダ(ファイルの中身) がそのブランチの最新状態に切り替わります。feature で作ったファイルは main に戻ると見えなくなり、main に戻ると元の状態に戻る — これが「別ルート」の実体です。
ブランチを切り替える前に
git status で「クリーン」(変更なし)を確認しましょう。中途半端な変更があるなら、まず commit するか、Stage 3-1 の stash で一時退避します。
ブランチを消す:git branch -d
不要になったブランチは削除できます。
-d は --delete。中身がmainにマージされていない場合は安全のため拒否されます。「mainにマージしてないけど捨てたい」場合は -D(大文字)で強制削除。
消したいブランチに自分がいる状態だと拒否されます。先に
git switch main で別のブランチに移ってから削除しましょう。
やってみよう:「別ルート」を体感する
ここまで学んだ branch / switch をまとめて手を動かしてみましょう。my_project の中で:
ブランチを切り替えるたびに 作業フォルダの中身そのものが変わる のが体感できましたか? これがブランチの本質です。lab.txt は experiment ブランチでだけ存在し、main からは見えません。
experiment ブランチは消さずに残しておけば、いつでも
git switch experiment で戻れます。次のレッスンで、これを main に取り込む(マージ) 方法を学びます。
ブランチ名を変える:git branch -m
ブランチ名を後から変えたいときは:
-m は --move。
コラム:checkout はどうなった?
「ググったら全部 checkout で書いてあるんだけど…」 と思った方へ。
昔の Git では git checkout -b feature のように checkout がブランチ操作にも使われていました。今でも動きますが、checkout は「ブランチ切替」と「ファイル復元」の 2つの役割が混ざっていてわかりにくい ので、Git 2.23(2019年8月)から switch(ブランチ切替) と restore(ファイル復元) に分かれました。
新旧の対応表:
| 昔の書き方(checkout) | 今の書き方 | このサイトでの解説 |
|---|---|---|
git checkout feature | git switch feature | このレッスン |
git checkout -b feature | git switch -c feature | このレッスン |
git checkout main | git switch main | このレッスン |
git checkout -- file.txt | git restore file.txt | Stage 2-5 |
git checkout HEAD~3 | git switch --detach HEAD~3 | (上級・本サイト範囲外) |
古い Git を使っている方へ
Git のバージョンが 2.23 より前なら、switch のところを そのまま checkout に読み替えてください。動作はほぼ同じです:
| このレッスンの書き方 | 古い Git でのコマンド |
|---|---|
git switch -c feature | git checkout -b feature |
git switch main | git 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 に取り込む(マージする) 方法を学びます。
✏️ 理解度チェック
各問題、選んだ瞬間に正解と解説が表示されます。気軽に試してください。
- Q1. 新しいブランチを作るコマンドは?
- Q2. ブランチを切り替えるコマンド(現在の推奨)は?
- Q3. ブランチを作ると同時に切り替えるショートカットは?