【初心者向け】Gitブランチの基本操作完全ガイド:作成・切り替え・マージを実践で学ぶ

Tech Trends AI
- 3 minutes read - 559 wordsはじめに
Gitの基本的な操作を覚えた後、多くの初心者が戸惑うのが「ブランチ」の概念です。「なぜブランチが必要なの?」「どうやって使うの?」「マージって何?」といった疑問を持つ方も多いでしょう。
本記事では、Gitブランチの基本概念から実際の操作方法まで、初心者の方にも分かりやすく解説していきます。実際のコマンド例とともに、ブランチを使った開発ワークフローを体験していただけます。
ブランチとは何か?
ブランチの概念
ブランチとは、簡単に言えば「コードの流れを分岐させる機能」です。木の枝(branch)のように、メインの開発ラインから分岐して、独立した開発ラインを作ることができます。
main ──●──●──●──●──●
\
●──● feature-branch
なぜブランチが必要なのか?
- 並行開発: 複数人で異なる機能を同時に開発できる
- 実験的な開発: メインコードに影響を与えずに新機能を試せる
- バージョン管理: リリース用、開発用など用途別に管理できる
- リスク軽減: 問題が発生してもメインブランチは安全
主要なブランチの種類
- main(またはmaster): メインブランチ、本番環境にデプロイされるコード
- develop: 開発用ブランチ、次回リリース予定の機能をまとめる
- feature: 機能開発用ブランチ、特定の機能開発に使用
- hotfix: 緊急修正用ブランチ、本番環境の問題を修正
ブランチの基本操作
1. 現在のブランチを確認する
# 現在のブランチを確認
git branch
# より詳細な情報を表示
git branch -v
# リモートブランチも含めて表示
git branch -a
実行結果例:
* main
feature-login
feature-dashboard
アスタリスク(*)が付いているのが現在のブランチです。
2. 新しいブランチを作成する
# 新しいブランチを作成(現在のブランチから分岐)
git branch feature-user-profile
# ブランチを作成して同時に切り替え
git checkout -b feature-user-profile
# Git 2.23以降の推奨方法
git switch -c feature-user-profile
3. ブランチを切り替える
# 既存のブランチに切り替え
git checkout feature-user-profile
# Git 2.23以降の推奨方法
git switch feature-user-profile
# mainブランチに戻る
git switch main
4. ブランチでの開発作業
新しいブランチで実際に開発を進めてみましょう:
# feature-user-profileブランチに切り替え
git switch feature-user-profile
# ファイルを編集・追加
echo "User profile feature" > user-profile.js
# 変更をステージングエリアに追加
git add user-profile.js
# コミット
git commit -m "Add user profile feature"
# 複数回のコミットを重ねる
echo "Additional profile settings" >> user-profile.js
git add user-profile.js
git commit -m "Add profile settings functionality"
5. ブランチの履歴を確認する
# コミット履歴をグラフ形式で表示
git log --oneline --graph --all
# 各ブランチの状況を確認
git show-branch
マージの基本
マージとは
マージとは、異なるブランチの変更を統合する操作です。開発したfeatureブランチの内容をmainブランチに取り込む際に使用します。
1. Fast-Forward マージ
最もシンプルなマージ方法です。mainブランチが更新されていない場合に発生します:
# mainブランチに切り替え
git switch main
# feature-user-profileブランチをマージ
git merge feature-user-profile
2. 3-way マージ
mainブランチも更新されている場合に発生するマージです:
# mainブランチで新しいコミットがある状態
main ──●──●──●──●
\ /
●──●──● feature-branch
マージコミットが作成され、両方の変更が統合されます。
3. マージの実践例
# 1. mainブランチに切り替え
git switch main
# 2. 最新の状態に更新(リモートがある場合)
git pull origin main
# 3. feature-user-profileブランチをマージ
git merge feature-user-profile
# 4. マージ結果を確認
git log --oneline --graph
# 5. 不要になったブランチを削除
git branch -d feature-user-profile
マージ時のコンフリクト(競合)解決
コンフリクトとは
同じファイルの同じ箇所を異なるブランチで編集した場合に発生する問題です。
コンフリクト例
<<<<<<< HEAD
function getUserName() {
return "admin";
}
=======
function getUserName() {
return "user123";
}
>>>>>>> feature-user-profile
解決方法
- コンフリクトファイルを特定
git status
- ファイルを編集して解決
function getUserName() {
return "user123"; // 適切な方を選択
}
- 解決をマーク
git add user-profile.js
git commit -m "Resolve merge conflict in getUserName function"
ブランチ運用のベストプラクティス
1. ブランチ命名規則
# 機能開発
feature/user-authentication
feature/payment-system
# バグ修正
bugfix/login-error
bugfix/payment-validation
# 緊急修正
hotfix/security-patch
hotfix/database-connection
2. 小さく頻繁なコミット
# 悪い例:大きすぎるコミット
git commit -m "Add entire user management system"
# 良い例:小さく明確なコミット
git commit -m "Add user registration form validation"
git commit -m "Implement password encryption"
git commit -m "Add user profile update functionality"
3. 意味のあるコミットメッセージ
# 悪い例
git commit -m "fix"
git commit -m "update"
# 良い例
git commit -m "Fix login validation for email format"
git commit -m "Update user profile to support avatar upload"
4. 定期的なmainブランチとの同期
# feature開発中に定期的にmainブランチの変更を取り込む
git switch main
git pull origin main
git switch feature-user-profile
git merge main
実践的なワークフロー例
シナリオ:ユーザーログイン機能の追加
- 新しいfeatureブランチ作成
git switch main
git pull origin main
git switch -c feature-login
- 開発作業
# login.html作成
echo "<form>Login Form</form>" > login.html
git add login.html
git commit -m "Add basic login form HTML"
# login.js作成
echo "function validateLogin() {}" > login.js
git add login.js
git commit -m "Add login validation function"
# CSS追加
echo ".login-form { margin: 20px; }" > login.css
git add login.css
git commit -m "Add login form styling"
- テストとレビュー
# 動作確認後、mainブランチにマージ
git switch main
git merge feature-login
- ブランチ削除
git branch -d feature-login
リモートリポジトリとの連携
リモートブランチの操作
# ローカルブランチをリモートにプッシュ
git push origin feature-user-profile
# リモートブランチを取得
git fetch origin
# リモートブランチから新しいローカルブランチ作成
git switch -c feature-dashboard origin/feature-dashboard
# リモートブランチの削除
git push origin --delete feature-completed
Pull Requestワークフロー
GitHub/GitLabでの一般的なワークフロー:
- featureブランチを作成・開発
- リモートにプッシュ
- Pull Request作成
- コードレビュー
- マージ・ブランチ削除
よくあるエラーと解決方法
1. ブランチ切り替え時のエラー
# エラー例
error: Your local changes to the following files would be overwritten by checkout
# 解決方法:変更を一時保存
git stash
git switch other-branch
git stash pop
2. マージ後のブランチ削除エラー
# エラー例
error: The branch 'feature-login' is not fully merged
# 解決方法:強制削除(注意して使用)
git branch -D feature-login
3. 間違ったブランチでコミットした場合
# 最新のコミットを別のブランチに移動
git switch correct-branch
git cherry-pick wrong-branch-commit-hash
まとめ
本記事では、Gitブランチの基本的な概念から実践的な使用方法まで解説しました:
- ブランチの概念: 開発ラインを分岐させる機能
- 基本操作: 作成・切り替え・マージの方法
- ベストプラクティス: 命名規則・コミット方法・ワークフロー
- トラブル対応: コンフリクト解決・エラー対処
ブランチを適切に使用することで、安全で効率的な開発が可能になります。最初は複雑に感じるかもしれませんが、実際に手を動かして練習することで、自然に身につくでしょう。
次のステップ
- Git-flowやGitHub-flowなど、より高度なワークフローの学習
- GitHub ActionsやGitLab CIとの連携
- 大規模プロジェクトでのブランチ戦略
継続的な実践を通じて、Gitブランチを活用した効率的な開発スキルを身につけていきましょう!