Gitブランチ戦略入門
効率的なチーム開発のためのブランチ運用
Gitのブランチ機能を活用すれば、本番環境に影響を与えずに新機能の開発やバグ修正ができます。
この記事では、ブランチの基本操作からチーム開発でよく使うブランチ戦略まで解説します。
こんな人向けの記事です
- Gitのブランチの使い方を知りたい
- チーム開発でのブランチ戦略を理解したい
- マージとリベースの違いを知りたい
Step 1ブランチの基本操作
ターミナル
# ブランチ一覧を表示
git branch
# 新しいブランチを作成
git branch feature/login
# ブランチに切り替え
git checkout feature/login
# 作成と切り替えを同時に
git checkout -b feature/login
# Git 2.23以降はswitchが推奨
git switch -c feature/login
# ブランチを削除
git branch -d feature/login
# リモートブランチ一覧
git branch -r
ブランチ名の慣例
feature/ログイン機能 → 新機能fix/バグ名 → バグ修正hotfix/緊急修正 → 本番の緊急修正release/v1.0 → リリース準備
Step 2マージの基本
ターミナル
# mainブランチに切り替え
git switch main
# feature/loginをmainにマージ
git merge feature/login
# マージ後、不要なブランチを削除
git branch -d feature/login
Step 3コンフリクトの解消
同じファイルの同じ箇所を別々のブランチで編集すると、マージ時にコンフリクト(競合)が発生します。
コンフリクトが発生したファイル
<<<<<<< HEAD
mainブランチの内容
=======
feature/loginブランチの内容
>>>>>>> feature/login
ターミナル
# 1. コンフリクト箇所を手動で修正
# 2. 修正したファイルをステージ
git add 修正したファイル
# 3. マージコミット
git commit
コンフリクトマーカーの消し忘れに注意
<<<<<<<、=======、>>>>>>> のマーカーは全て削除してから保存してください。マーカーが残ったままコミットするとバグの原因になります。
Step 4マージとリベースの違い
| マージ(merge) | リベース(rebase) | |
|---|---|---|
| 履歴 | マージコミットが作られる | 直線的な履歴になる |
| 安全性 | 高い(元の履歴が残る) | 注意が必要(履歴が書き換わる) |
| 使いどころ | 共有ブランチ | 個人ブランチの整理 |
ターミナル
# featureブランチでmainの最新を取り込む
git switch feature/login
git rebase main
# コンフリクトがあれば解消して
git add .
git rebase --continue
push済みのブランチをリベースしない
他の人が使っているブランチをリベースすると、履歴の整合性が取れなくなります。リベースはローカルのまだpushしていないブランチに限定してください。
Step 5ブランチ戦略:Git Flow
| ブランチ | 役割 | マージ先 |
|---|---|---|
main | 本番リリース済みのコード | — |
develop | 開発の統合ブランチ | main |
feature/* | 新機能開発 | develop |
release/* | リリース準備 | main + develop |
hotfix/* | 本番の緊急修正 | main + develop |
Step 6ブランチ戦略:GitHub Flow
Git Flowよりシンプルで、小規模チームやWebアプリの継続的デリバリーに向いています。
| ステップ | 操作 |
|---|---|
| 1 | mainからブランチを作成 |
| 2 | ブランチで開発・コミット |
| 3 | Pull Request(PR)を作成 |
| 4 | コードレビュー |
| 5 | mainにマージ → 自動デプロイ |
まとめ
git switch -c ブランチ名で新ブランチ作成・切替git mergeで別ブランチの変更を取り込む- コンフリクトは手動で解消して
git add→git commit - リベースはローカル限定で使用(push済みブランチはNG)
- Git Flow(大規模)or GitHub Flow(小規模)をチームに合わせて選択