ブランチを使おう
はじめに:ブランチって何?
ブランチ(branch) は、Git の中でも特に便利な機能です。英語で「枝」を意味します。
一言でいうと
ブランチは 「コードのパラレルワールド(並行世界)」 です。元の世界を壊さずに、別の世界で自由に実験できます。
ブランチを身近な例で理解しよう
パラレルワールドの例
SF映画で「もしあのとき別の選択をしていたら?」という並行世界が描かれることがありますよね。Git のブランチはまさにそれです。
┌──── 機能Aを作る世界(feature-a ブランチ)
│
メインの世界 ────────────┤
(main ブランチ) │
└──── デザインを変える世界(design-update ブランチ)- メインの世界(main) は安全にそのまま
- 別の世界で自由に実験できる
- うまくいったら メインの世界に統合(マージ) できる
- 失敗したら その世界を捨てればいい だけ
料理に例えると
新しい料理のレシピを考えるとき:
- いつものレシピ(main ブランチ)はそのまま保存
- 味付けを変えたバージョン(feature ブランチ)を別に作って試す
- 美味しかったら いつものレシピに採用(マージ)
- イマイチだったら なかったことにする(ブランチ削除)
なぜブランチが大切?
ブランチがなければ、新しいことを試すたびにメインのコードを壊すリスクがあります。ブランチを使えば 「壊しても大丈夫な安全な空間」 で作業できます。
ブランチの基本コマンド
ブランチ一覧を見る:git branch
# 現在のブランチ一覧を表示
git branch表示例:
* main* がついているのが 今いるブランチ です。初期状態では main だけがあります。
新しいブランチを作る:git branch ブランチ名
# 新しいブランチを作成
git branch feature-greetingもう一度 git branch で確認すると:
feature-greeting
* main ← まだ main にいるブランチ名の付け方
ブランチ名は、何をするためのブランチか がわかる名前にしましょう。
良い例:
feature-login(ログイン機能を作る)fix-button-color(ボタンの色を修正する)update-readme(READMEを更新する)
慣例として、以下のプレフィックスがよく使われます:
feature/... 新機能の開発fix/... バグの修正update/... 既存機能の更新
ブランチを切り替える:git switch
# ブランチを切り替える(新しい方法)
git switch feature-greeting
# 確認
git branch表示例:
* feature-greeting ← こちらに移動した!
maingit checkout と git switch
古い Git では git checkout ブランチ名 を使っていました。新しい Git では git switch が推奨されています。どちらも同じことができますが、git switch の方がわかりやすいです。
# 古い方法(今でも使える)
git checkout feature-greeting
# 新しい方法(推奨)
git switch feature-greetingブランチ作成と切り替えを同時に行う
# 作成して即切り替え(よく使うパターン)
git switch -c new-feature
# 古い方法
git checkout -b new-feature便利なショートカット
git switch -c ブランチ名 は最もよく使うパターンです。新しい作業を始めるときはこれ一発でOKです。
ブランチでの作業の流れ
実際にブランチを使って作業してみましょう。
ステップ 1:ブランチを作って移動
# 新しいブランチを作成して切り替え
git switch -c feature-greetingステップ 2:ブランチ上で作業する
# ファイルを作成
echo "こんにちは、世界!" > greeting.txt
# コミット
git add greeting.txt
git commit -m "挨拶ファイルを追加"ステップ 3:ブランチの違いを確認
# main ブランチに戻る
git switch main
# greeting.txt がないことを確認!
ls
# → hello.txt だけが表示される(greeting.txt はない!)
# feature-greeting ブランチに戻ると...
git switch feature-greeting
ls
# → hello.txt と greeting.txt の両方がある!ここが重要!
ブランチを切り替えると、フォルダの中身が実際に変わります。これは最初ビックリするかもしれませんが、Git がファイルを安全に管理してくれているのです。
ブランチの視覚的な流れ
main: A ──── B ──── C ──── D ──── E ──── F(マージ後)
│ ↑
│ │ git merge
└──── X ──── Y ──── Z ──────┘
feature-greetingA, B, C...はそれぞれコミット(セーブポイント)Bの時点でfeature-greetingブランチが分かれたfeature-greetingでX, Y, Zと作業を進めるmainでもC, D, Eと別の作業が進む- 最後に マージ して
Fで合流する
git merge - ブランチを統合する
作業が完了したブランチを main に統合 するのが git merge です。
# まず main ブランチに移動する
git switch main
# feature-greeting の変更を main に取り込む
git merge feature-greeting表示例:
Updating a1b2c3d..x9y8z7w
Fast-forward
greeting.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 greeting.txtマージの方向に注意
マージは 「今いるブランチに、指定したブランチを取り込む」 という操作です。
main に feature を取り込みたい場合:
- まず
git switch mainで main に移動 - 次に
git merge feature-greetingで取り込む
この順番を間違えないようにしましょう。
マージ後の不要なブランチを削除
# マージ済みのブランチを削除
git branch -d feature-greeting削除しなくても問題なし
ブランチを削除しなくても害はありません。ただ、不要なブランチがたくさんあると一覧が見づらくなるので、マージ済みのブランチは削除するのがベストプラクティスです。
コンフリクト(衝突)
同じファイルの同じ場所を、異なるブランチで別々に変更すると コンフリクト(衝突) が起きます。
<<<<<<< HEAD
main ブランチでの変更
=======
feature ブランチでの変更
>>>>>>> feature-branchコンフリクトは怖くない!
コンフリクトは「Git が自動で解決できない部分がある」というお知らせです。どちらの変更を残すか(または両方残すか)を自分で決めれば大丈夫です。
Claude Code に「コンフリクトを解決して」とお願いすることもできます。
コンフリクトの解決手順
- コンフリクトが起きたファイルを開く
<<<<<<<、=======、>>>>>>>のマーカーを探す- どちらの変更を残すか決めて編集する
- マーカーを削除する
git addしてgit commitする
よく使うブランチ戦略
main / feature ブランチ戦略
最もシンプルでよく使われるパターンです。
main: ──────────────────────────────────────────
│ ↑ │ ↑
│ merge ─────┘ │ merge ─┘
│ │
feature-a: └── A ── B ── C │
│
feature-b: └── X ── Y- main ブランチは常に「正しく動く状態」を保つ
- 新しい機能ごとに feature ブランチ を作る
- 機能が完成したら main にマージ する
初心者へのアドバイス
最初は main と feature ブランチの2種類 だけ覚えれば十分です。
- 新しい作業を始める →
git switch -c feature-xxx - 作業が終わったら →
git switch main→git merge feature-xxx
この流れを繰り返すだけです。
Claude Code とブランチ
Claude Code はブランチと密接に連携します。
Claude Code がブランチを使う場面
# Claude Code に新機能の開発を頼む場合
> 「ログイン機能を追加してください」
# Claude Code が裏側で行うこと:
# 1. 新しいブランチを作成(git switch -c feature-login)
# 2. コードを書く
# 3. 変更をコミット
# 4. あなたに確認を求めるClaude Code での安全な開発
Claude Code に作業を依頼するとき、「新しいブランチで作業して」と伝えると、main ブランチを安全に保ったまま作業してくれます。気に入らなければブランチごと捨てればOKです。
Claude Code にブランチ操作を頼む例
「feature-search ブランチを作って切り替えて」
「main ブランチにマージして」
「このブランチの変更を元に戻して」Claude Code はこれらの指示を理解して、適切な Git コマンドを実行してくれます。
練習してみよう
練習問題
練習 1:ブランチの基本
- 練習用リポジトリで
git branch feature-testを実行 git branchでブランチ一覧を確認git switch feature-testで切り替え- ファイルを作成してコミット
git switch mainで main に戻る- ファイルがないことを確認する
練習 2:マージ
git merge feature-testで feature-test の変更を main に取り込む- ファイルが main にも現れたことを確認
git branch -d feature-testで不要なブランチを削除git log --onelineで履歴を確認
コマンド早見表
| コマンド | 意味 | 使いどころ |
|---|---|---|
git branch | ブランチ一覧を見る | 今どのブランチにいるか確認 |
git branch ブランチ名 | ブランチを作る | 新しい作業を始めるとき |
git switch ブランチ名 | ブランチを切り替える | 別の作業に移るとき |
git switch -c ブランチ名 | 作成+切り替え | 新しい作業の開始(一番よく使う) |
git merge ブランチ名 | ブランチを統合する | 作業が完了したとき |
git branch -d ブランチ名 | ブランチを削除する | マージ済みの片付け |
まとめ
- ブランチ はコードのパラレルワールド。安全に実験できる
git switch -cで新しいブランチを作って即切り替えgit mergeで完成した作業を main に統合- コンフリクト は怖くない。どちらを残すか選ぶだけ
- main / feature 戦略 を覚えれば最初は十分
- Claude Code はブランチを使って安全に開発してくれる
次のページでは、GitHub / GitLab を使ってコードをクラウドに保存・共有する方法を学びましょう。