Skip to content

ブランチを使おう

はじめに:ブランチって何?

ブランチ(branch) は、Git の中でも特に便利な機能です。英語で「枝」を意味します。

一言でいうと

ブランチは 「コードのパラレルワールド(並行世界)」 です。元の世界を壊さずに、別の世界で自由に実験できます。

ブランチを身近な例で理解しよう

パラレルワールドの例

SF映画で「もしあのとき別の選択をしていたら?」という並行世界が描かれることがありますよね。Git のブランチはまさにそれです。

                          ┌──── 機能Aを作る世界(feature-a ブランチ)

 メインの世界 ────────────┤
 (main ブランチ)         │
                          └──── デザインを変える世界(design-update ブランチ)
  • メインの世界(main) は安全にそのまま
  • 別の世界で自由に実験できる
  • うまくいったら メインの世界に統合(マージ) できる
  • 失敗したら その世界を捨てればいい だけ

料理に例えると

新しい料理のレシピを考えるとき:

  1. いつものレシピ(main ブランチ)はそのまま保存
  2. 味付けを変えたバージョン(feature ブランチ)を別に作って試す
  3. 美味しかったら いつものレシピに採用(マージ)
  4. イマイチだったら なかったことにする(ブランチ削除)

なぜブランチが大切?

ブランチがなければ、新しいことを試すたびにメインのコードを壊すリスクがあります。ブランチを使えば 「壊しても大丈夫な安全な空間」 で作業できます。

ブランチの基本コマンド

ブランチ一覧を見る:git branch

bash
# 現在のブランチ一覧を表示
git branch

表示例:

* main

* がついているのが 今いるブランチ です。初期状態では main だけがあります。

新しいブランチを作る:git branch ブランチ名

bash
# 新しいブランチを作成
git branch feature-greeting

もう一度 git branch で確認すると:

  feature-greeting
* main                  ← まだ main にいる

ブランチ名の付け方

ブランチ名は、何をするためのブランチか がわかる名前にしましょう。

良い例:

  • feature-login(ログイン機能を作る)
  • fix-button-color(ボタンの色を修正する)
  • update-readme(READMEを更新する)

慣例として、以下のプレフィックスがよく使われます:

  • feature/ ... 新機能の開発
  • fix/ ... バグの修正
  • update/ ... 既存機能の更新

ブランチを切り替える:git switch

bash
# ブランチを切り替える(新しい方法)
git switch feature-greeting

# 確認
git branch

表示例:

* feature-greeting      ← こちらに移動した!
  main

git checkout と git switch

古い Git では git checkout ブランチ名 を使っていました。新しい Git では git switch が推奨されています。どちらも同じことができますが、git switch の方がわかりやすいです。

bash
# 古い方法(今でも使える)
git checkout feature-greeting

# 新しい方法(推奨)
git switch feature-greeting

ブランチ作成と切り替えを同時に行う

bash
# 作成して即切り替え(よく使うパターン)
git switch -c new-feature

# 古い方法
git checkout -b new-feature

便利なショートカット

git switch -c ブランチ名 は最もよく使うパターンです。新しい作業を始めるときはこれ一発でOKです。

ブランチでの作業の流れ

実際にブランチを使って作業してみましょう。

ステップ 1:ブランチを作って移動

bash
# 新しいブランチを作成して切り替え
git switch -c feature-greeting

ステップ 2:ブランチ上で作業する

bash
# ファイルを作成
echo "こんにちは、世界!" > greeting.txt

# コミット
git add greeting.txt
git commit -m "挨拶ファイルを追加"

ステップ 3:ブランチの違いを確認

bash
# 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-greeting
  • A, B, C... はそれぞれコミット(セーブポイント)
  • B の時点で feature-greeting ブランチが分かれた
  • feature-greetingX, Y, Z と作業を進める
  • main でも C, D, E と別の作業が進む
  • 最後に マージ して F で合流する

git merge - ブランチを統合する

作業が完了したブランチを main に統合 するのが git merge です。

bash
# まず 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 を取り込みたい場合:

  1. まず git switch main で main に移動
  2. 次に git merge feature-greeting で取り込む

この順番を間違えないようにしましょう。

マージ後の不要なブランチを削除

bash
# マージ済みのブランチを削除
git branch -d feature-greeting

削除しなくても問題なし

ブランチを削除しなくても害はありません。ただ、不要なブランチがたくさんあると一覧が見づらくなるので、マージ済みのブランチは削除するのがベストプラクティスです。

コンフリクト(衝突)

同じファイルの同じ場所を、異なるブランチで別々に変更すると コンフリクト(衝突) が起きます。

<<<<<<< HEAD
main ブランチでの変更
=======
feature ブランチでの変更
>>>>>>> feature-branch

コンフリクトは怖くない!

コンフリクトは「Git が自動で解決できない部分がある」というお知らせです。どちらの変更を残すか(または両方残すか)を自分で決めれば大丈夫です。

Claude Code に「コンフリクトを解決して」とお願いすることもできます。

コンフリクトの解決手順

  1. コンフリクトが起きたファイルを開く
  2. <<<<<<<=======>>>>>>> のマーカーを探す
  3. どちらの変更を残すか決めて編集する
  4. マーカーを削除する
  5. git add して git commit する

よく使うブランチ戦略

main / feature ブランチ戦略

最もシンプルでよく使われるパターンです。

main:        ──────────────────────────────────────────
                │              ↑         │         ↑
                │   merge ─────┘         │  merge ─┘
                │                       │
feature-a:      └── A ── B ── C          │

feature-b:                               └── X ── Y
  • main ブランチは常に「正しく動く状態」を保つ
  • 新しい機能ごとに feature ブランチ を作る
  • 機能が完成したら main にマージ する

初心者へのアドバイス

最初は main と feature ブランチの2種類 だけ覚えれば十分です。

  1. 新しい作業を始める → git switch -c feature-xxx
  2. 作業が終わったら → git switch maingit merge feature-xxx

この流れを繰り返すだけです。

Claude Code とブランチ

Claude Code はブランチと密接に連携します。

Claude Code がブランチを使う場面

bash
# 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:ブランチの基本

  1. 練習用リポジトリで git branch feature-test を実行
  2. git branch でブランチ一覧を確認
  3. git switch feature-test で切り替え
  4. ファイルを作成してコミット
  5. git switch main で main に戻る
  6. ファイルがないことを確認する

練習 2:マージ

  1. git merge feature-test で feature-test の変更を main に取り込む
  2. ファイルが main にも現れたことを確認
  3. git branch -d feature-test で不要なブランチを削除
  4. 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 を使ってコードをクラウドに保存・共有する方法を学びましょう。

Anthropic公式ドキュメントを基に作成