Skip to content

ブランチの管理

ブランチの作成、削除、切り替えなどの管理方法を詳しく解説します。

Terminal window
# ブランチを作成
git branch <ブランチ名>
# ブランチを作成して切り替え
git checkout -b <ブランチ名>
# 新しいブランチを作成(Git 2.23以降)
git switch -c <ブランチ名>
# ブランチを切り替え
git checkout <ブランチ名>
# または
git switch <ブランチ名>
Terminal window
# ローカルブランチの一覧
git branch
# リモートブランチも含めて一覧表示
git branch -a
# リモートブランチのみ表示
git branch -r
# 詳細情報付きで表示
git branch -v
# マージ済み/未マージのブランチを表示
git branch --merged
git branch --no-merged
Terminal window
# ローカルブランチを削除
git branch -d <ブランチ名>
# 強制削除(マージされていないブランチも削除)
git branch -D <ブランチ名>
# リモートブランチを削除
git push origin --delete <ブランチ名>
# または
git push origin :<ブランチ名>
Terminal window
# 機能開発
feature/user-authentication
feature/payment-integration
# バグ修正
bugfix/login-error
bugfix/payment-bug
# ホットフィックス
hotfix/security-patch
hotfix/critical-bug
# リリース
release/v1.0.0
release/v2.0.0
# 開発・実験
develop/experimental-feature
dev/test-feature
Terminal window
# 機能開発ブランチ
git checkout -b feature/user-profile
# バグ修正ブランチ
git checkout -b bugfix/login-validation-error
# ホットフィックスブランチ
git checkout -b hotfix/security-vulnerability
Terminal window
# GitHub/GitLabで保護ブランチを設定
# 設定項目:
# - 直接プッシュを禁止
# - プルリクエストの必須化
# - レビューの必須化
# - ステータスチェックの必須化
Terminal window
# 1. featureブランチで開発
git checkout -b feature/new-feature
# 開発作業...
# 2. プルリクエストを作成
# GitHub/GitLabのWebインターフェースで作成
# 3. レビューと承認
# 4. マージ(保護設定により直接マージできない)
Terminal window
# リモートブランチの情報を取得
git fetch origin
# 特定のブランチを取得
git fetch origin <ブランチ名>
# すべてのリモートブランチを取得
git fetch --all
Terminal window
# リモートブランチを追跡するローカルブランチを作成
git checkout -b <ローカルブランチ名> origin/<リモートブランチ名>
# または
git checkout --track origin/<リモートブランチ名>
# 既存のブランチに追跡を設定
git branch --set-upstream-to=origin/<リモートブランチ名> <ローカルブランチ名>
Terminal window
# ブランチをリモートにプッシュ
git push origin <ブランチ名>
# 初回プッシュ時に追跡を設定
git push -u origin <ブランチ名>
# リモートブランチからプル
git pull origin <ブランチ名>
# 追跡ブランチからプル
git pull
Terminal window
# 2つのブランチの差分を表示
git diff <ブランチ1> <ブランチ2>
# 現在のブランチと別のブランチの差分
git diff <ブランチ名>
# ファイル単位で差分を表示
git diff <ブランチ1> <ブランチ2> -- <ファイル名>
# 統計情報を表示
git diff --stat <ブランチ1> <ブランチ2>
Terminal window
# 2つのブランチ間のコミットを表示
git log <ブランチ1>..<ブランチ2>
# 片方にのみあるコミットを表示
git log --left-right <ブランチ1>...<ブランチ2>
# グラフで表示
git log --oneline --graph <ブランチ1> <ブランチ2>
Terminal window
# 1. mainブランチ(本番環境)
git checkout main
# 2. developブランチ(開発環境)
git checkout -b develop
git push -u origin develop
# 3. featureブランチ(機能開発)
git checkout -b feature/new-feature develop
# 開発作業...
git add .
git commit -m "新機能を実装"
git push -u origin feature/new-feature
# 4. developブランチにマージ
git checkout develop
git merge --no-ff feature/new-feature
git push origin develop
# 5. featureブランチを削除
git branch -d feature/new-feature
git push origin --delete feature/new-feature
# 6. releaseブランチ(リリース準備)
git checkout -b release/v1.0.0 develop
# バグ修正など...
git checkout develop
git merge --no-ff release/v1.0.0
git checkout main
git merge --no-ff release/v1.0.0
git tag -a v1.0.0
git branch -d release/v1.0.0
# 7. hotfixブランチ(緊急修正)
git checkout -b hotfix/critical-bug main
# 修正作業...
git checkout main
git merge --no-ff hotfix/critical-bug
git tag -a v1.0.1
git checkout develop
git merge --no-ff hotfix/critical-bug
git branch -d hotfix/critical-bug
Terminal window
# 1. mainブランチからfeatureブランチを作成
git checkout main
git pull origin main
git checkout -b feature/new-feature
# 2. 開発作業
git add .
git commit -m "新機能を実装"
git push -u origin feature/new-feature
# 3. プルリクエストを作成(GitHubのWebインターフェース)
# 4. レビューと承認後、マージ
# 5. mainブランチを更新
git checkout main
git pull origin main
# 6. featureブランチを削除
git branch -d feature/new-feature
git push origin --delete feature/new-feature

ブランチの管理のポイント:

  • 基本操作: 作成、切り替え、一覧表示、削除
  • 命名規則: feature、bugfix、hotfix、release、develop
  • 保護ブランチ: 直接プッシュの禁止、プルリクエストの必須化
  • 同期: fetch、pull、push、追跡設定
  • 比較: diff、log、統計情報
  • ワークフロー: Git Flow、GitHub Flow

適切にブランチを管理することで、効率的に開発を進めることができます。