ブランチの管理
ブランチの管理
Section titled “ブランチの管理”ブランチの作成、削除、切り替えなどの管理方法を詳しく解説します。
ブランチの基本操作
Section titled “ブランチの基本操作”ブランチの作成と切り替え
Section titled “ブランチの作成と切り替え”# ブランチを作成git branch <ブランチ名>
# ブランチを作成して切り替えgit checkout -b <ブランチ名>
# 新しいブランチを作成(Git 2.23以降)git switch -c <ブランチ名>
# ブランチを切り替えgit checkout <ブランチ名># またはgit switch <ブランチ名>ブランチの一覧表示
Section titled “ブランチの一覧表示”# ローカルブランチの一覧git branch
# リモートブランチも含めて一覧表示git branch -a
# リモートブランチのみ表示git branch -r
# 詳細情報付きで表示git branch -v
# マージ済み/未マージのブランチを表示git branch --mergedgit branch --no-mergedブランチの削除
Section titled “ブランチの削除”# ローカルブランチを削除git branch -d <ブランチ名>
# 強制削除(マージされていないブランチも削除)git branch -D <ブランチ名>
# リモートブランチを削除git push origin --delete <ブランチ名># またはgit push origin :<ブランチ名>ブランチの命名規則
Section titled “ブランチの命名規則”推奨される命名規則
Section titled “推奨される命名規則”# 機能開発feature/user-authenticationfeature/payment-integration
# バグ修正bugfix/login-errorbugfix/payment-bug
# ホットフィックスhotfix/security-patchhotfix/critical-bug
# リリースrelease/v1.0.0release/v2.0.0
# 開発・実験develop/experimental-featuredev/test-feature# 機能開発ブランチgit checkout -b feature/user-profile
# バグ修正ブランチgit checkout -b bugfix/login-validation-error
# ホットフィックスブランチgit checkout -b hotfix/security-vulnerabilityブランチの保護
Section titled “ブランチの保護”保護ブランチの設定
Section titled “保護ブランチの設定”# GitHub/GitLabで保護ブランチを設定# 設定項目:# - 直接プッシュを禁止# - プルリクエストの必須化# - レビューの必須化# - ステータスチェックの必須化保護ブランチへのマージ
Section titled “保護ブランチへのマージ”# 1. featureブランチで開発git checkout -b feature/new-feature# 開発作業...
# 2. プルリクエストを作成# GitHub/GitLabのWebインターフェースで作成
# 3. レビューと承認
# 4. マージ(保護設定により直接マージできない)ブランチの同期
Section titled “ブランチの同期”リモートブランチの取得
Section titled “リモートブランチの取得”# リモートブランチの情報を取得git fetch origin
# 特定のブランチを取得git fetch origin <ブランチ名>
# すべてのリモートブランチを取得git fetch --allリモートブランチの追跡
Section titled “リモートブランチの追跡”# リモートブランチを追跡するローカルブランチを作成git checkout -b <ローカルブランチ名> origin/<リモートブランチ名>
# またはgit checkout --track origin/<リモートブランチ名>
# 既存のブランチに追跡を設定git branch --set-upstream-to=origin/<リモートブランチ名> <ローカルブランチ名>ブランチのプッシュとプル
Section titled “ブランチのプッシュとプル”# ブランチをリモートにプッシュgit push origin <ブランチ名>
# 初回プッシュ時に追跡を設定git push -u origin <ブランチ名>
# リモートブランチからプルgit pull origin <ブランチ名>
# 追跡ブランチからプルgit pullブランチの比較
Section titled “ブランチの比較”ブランチ間の差分
Section titled “ブランチ間の差分”# 2つのブランチの差分を表示git diff <ブランチ1> <ブランチ2>
# 現在のブランチと別のブランチの差分git diff <ブランチ名>
# ファイル単位で差分を表示git diff <ブランチ1> <ブランチ2> -- <ファイル名>
# 統計情報を表示git diff --stat <ブランチ1> <ブランチ2>コミットの比較
Section titled “コミットの比較”# 2つのブランチ間のコミットを表示git log <ブランチ1>..<ブランチ2>
# 片方にのみあるコミットを表示git log --left-right <ブランチ1>...<ブランチ2>
# グラフで表示git log --oneline --graph <ブランチ1> <ブランチ2>実践的なワークフロー
Section titled “実践的なワークフロー”Git Flow
Section titled “Git Flow”# 1. mainブランチ(本番環境)git checkout main
# 2. developブランチ(開発環境)git checkout -b developgit 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 developgit merge --no-ff feature/new-featuregit push origin develop
# 5. featureブランチを削除git branch -d feature/new-featuregit push origin --delete feature/new-feature
# 6. releaseブランチ(リリース準備)git checkout -b release/v1.0.0 develop# バグ修正など...git checkout developgit merge --no-ff release/v1.0.0git checkout maingit merge --no-ff release/v1.0.0git tag -a v1.0.0git branch -d release/v1.0.0
# 7. hotfixブランチ(緊急修正)git checkout -b hotfix/critical-bug main# 修正作業...git checkout maingit merge --no-ff hotfix/critical-buggit tag -a v1.0.1git checkout developgit merge --no-ff hotfix/critical-buggit branch -d hotfix/critical-bugGitHub Flow
Section titled “GitHub Flow”# 1. mainブランチからfeatureブランチを作成git checkout maingit pull origin maingit 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 maingit pull origin main
# 6. featureブランチを削除git branch -d feature/new-featuregit push origin --delete feature/new-featureブランチの管理のポイント:
- 基本操作: 作成、切り替え、一覧表示、削除
- 命名規則: feature、bugfix、hotfix、release、develop
- 保護ブランチ: 直接プッシュの禁止、プルリクエストの必須化
- 同期: fetch、pull、push、追跡設定
- 比較: diff、log、統計情報
- ワークフロー: Git Flow、GitHub Flow
適切にブランチを管理することで、効率的に開発を進めることができます。