メインコンテンツへスキップ
レッスン 12 / 15推定時間: 25

ブランチの基礎(git branch)

新機能を試したいけど安定版を壊したくない?ブランチで安全に実験できる方法を学びましょう

このレッスンの学習目標

  • 本番環境を壊すリスクを理解する
  • ブランチの概念と利点を理解する
  • 基本的なブランチ操作ができるようになる

困りごと:新機能の実験が怖い

😰 こんな心配ありませんか?

  • 「新機能を試したいけど、今動いているコードを壊したくない」
  • 「実験的な変更が本番に影響しそうで怖い」
  • 「複数の機能を並行開発したいけど、混ざってしまう」
  • 「失敗したら元に戻すのが大変そう」

解決策:ブランチを使って安全に実験!

ブランチとは?

イメージ:平行世界での開発

main(本番)━━━━━━━━━━━━━━━━━━━━━━━>
         ╲
          ╲ feature/new-ui(実験)
           ╲━━━━━━━━━━━━━━━>
                    ↓
                 成功したら
                    ↓
main ━━━━━━━━━━━━━━━━━━━━━━━━━━━>
              ↑ マージ(統合)
  • ブランチ = 独立した作業スペース
  • 本番(main)に影響を与えずに実験可能
  • 成功したら統合、失敗したら捨てるだけ

実践:初めてのブランチ作成

1. プロジェクトの準備

# 新しいプロジェクトを作成
mkdir branch-practice
cd branch-practice
git init

# 基本的なファイルを作成
echo "# ブランチ練習プロジェクト" > README.md
echo "function calculate() {
    return 10 + 20;
}" > calculator.js

git add .
git commit -m "初期実装:基本的な計算機能"

2. 現在のブランチを確認

# ブランチ一覧を表示
git branch

# より詳細な情報
git branch -v

*マークが現在のブランチを示します。

3. 新しいブランチを作成

# 新機能用のブランチを作成
git branch feature/multiply

# ブランチ一覧を確認
git branch

まだmainブランチにいることに注目!

4. ブランチを切り替える

# feature/multiplyブランチに切り替え
git checkout feature/multiply

# または、作成と切り替えを同時に行う
# git checkout -b feature/multiply

# 現在のブランチを確認
git branch

ブランチでの作業

新機能を実装

# 掛け算機能を追加
echo "
function multiply(a, b) {
    return a * b;
}" >> calculator.js

# 変更を確認
cat calculator.js

# コミット
git add calculator.js
git commit -m "feat: 掛け算機能を追加"

mainブランチは変更されていない!

# mainブランチに切り替え
git checkout main

# ファイルを確認(掛け算機能はない)
cat calculator.js

# feature/multiplyに戻る
git checkout feature/multiply

# ファイルを確認(掛け算機能がある)
cat calculator.js

ブランチのマージ(統合)

機能が完成したらmainに統合

# mainブランチに切り替え
git checkout main

# feature/multiplyをマージ
git merge feature/multiply

# 確認
cat calculator.js
git log --oneline -5

マージ後のクリーンアップ

# 不要になったブランチを削除
git branch -d feature/multiply

# 確認
git branch

よく使うブランチ操作

ブランチの一覧表示

# ローカルブランチ
git branch

# リモートブランチも含む
git branch -a

# 最終コミット情報付き
git branch -v

# マージ済みブランチのみ
git branch --merged

ブランチの作成パターン

# パターン1:作成してから切り替え
git branch feature/new-feature
git checkout feature/new-feature

# パターン2:作成と同時に切り替え(推奨)
git checkout -b feature/another-feature

# パターン3:特定のコミットから分岐
git checkout -b bugfix/issue-123 abc1234

ブランチの削除

# マージ済みブランチの削除
git branch -d branch-name

# 強制削除(マージしていなくても削除)
git branch -D branch-name

# リモートブランチの削除
git push origin --delete branch-name

ブランチ命名規則

良い名前の付け方

機能追加:
- feature/user-login
- feature/dark-mode
- feature/payment-integration

バグ修正:
- bugfix/login-error
- fix/memory-leak
- hotfix/critical-security

改善:
- improve/performance
- refactor/database-queries
- chore/update-dependencies

避けるべき名前

❌ test
❌ temp
❌ あああ
❌ branch1
❌ new-branch

実践的なブランチ戦略

個人開発の場合

# mainブランチ:常に動作する状態
# feature/*:新機能開発
# bugfix/*:バグ修正

# 例:ブログ機能を追加
git checkout -b feature/blog
echo "// Blog functionality" > blog.js
git add blog.js
git commit -m "feat: ブログ機能を追加"

# テストしてOKならマージ
git checkout main
git merge feature/blog

実験的な変更

# 実験用ブランチ
git checkout -b experiment/new-algorithm

# 色々試す
echo "// 実験的なコード" > experiment.js
git add experiment.js
git commit -m "実験:新しいアルゴリズムを試す"

# うまくいかなかったら、ブランチごと削除
git checkout main
git branch -D experiment/new-algorithm

トラブルシューティング

エラー:ブランチの切り替えができない

error: Your local changes would be overwritten

解決策

# 変更を一時保存
git stash

# ブランチを切り替え
git checkout other-branch

# 変更を復元
git stash pop

エラー:ブランチの削除ができない

error: The branch 'feature' is not fully merged

解決策

# マージされているか確認
git branch --merged

# 強制削除(注意!)
git branch -D feature

ベストプラクティス

1. こまめにmainを更新

# feature ブランチで作業中
git checkout main
git pull origin main
git checkout feature/my-feature
git merge main  # mainの最新を取り込む

2. 一つのブランチ = 一つの目的

良い例:
- feature/user-authentication(認証機能のみ)
- bugfix/login-timeout(特定のバグのみ)

悪い例:
- feature/everything(色々な変更)
- temp-work(何をしているか不明)

3. 定期的なクリーンアップ

# マージ済みブランチを確認
git branch --merged

# 不要なブランチを削除
git branch -d old-feature-1 old-feature-2

まとめ

ブランチの基本操作をマスターしました!

  • ✅ 本番を壊さずに新機能を開発できる
  • ✅ 複数の作業を並行して進められる
  • ✅ 失敗しても簡単に捨てられる
  • ✅ 実験的な変更も安心して試せる

重要なコマンド

  • git branch - ブランチ一覧
  • git checkout -b - ブランチ作成&切り替え
  • git merge - ブランチの統合
  • git branch -d - ブランチの削除

次のレッスンでは、これまで学んだことを活かして、実際の個人プロジェクトを管理する方法を実践します!

【実践演習】ブランチの操作

実際にプロジェクトを作成して、ブランチ操作を練習しましょう。

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

練習課題

  1. 新機能ブランチの作成

    # ダークモード機能のブランチを作成
    git checkout -b feature/dark-mode
    
    # ダークモードのスタイルを追加
    echo "body.dark { background: #333; color: white; }" >> style.css
    git add style.css
    git commit -m "feat: ダークモードのスタイルを追加"
  2. バグ修正ブランチの作成

    # mainに戻ってからバグ修正ブランチを作成
    git checkout main
    git checkout -b bugfix/version-number
    
    # バージョン番号を修正
    sed -i '' "s/1.0.0/1.0.1/g" app.js  # Macの場合
    # sed -i "s/1.0.0/1.0.1/g" app.js  # Linuxの場合
    git add app.js
    git commit -m "fix: バージョン番号を修正"
  3. マージ操作

    # mainブランチに戻る
    git checkout main
    
    # バグ修正をマージ
    git merge bugfix/version-number
    
    # 新機能をマージ
    git merge feature/dark-mode
    
    # マージ結果を確認
    cat app.js style.css
  4. ブランチのクリーンアップ

    # マージ済みブランチを確認
    git branch --merged
    
    # 不要なブランチを削除
    git branch -d bugfix/version-number
    git branch -d feature/dark-mode
    
    # 結果を確認
    git branch
CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

🎯 確認ポイント

  • ブランチを作成して安全に実験できた
  • ブランチを切り替えて独立した作業ができた
  • マージで変更を統合できた
  • 不要なブランチを削除して整理できた

ブランチを使いこなせば、どんな実験も怖くありません!

さらに学習を続けるには

素晴らしい学習ペースです!次のレッスンに進むには、無料会員登録をお願いします。無料会員では各コース3レッスンまで学習できます。

無料で続きを学ぶ

各コース3レッスンまで学習可能

学習進捗の自動保存

コース修了証明書の発行