📖
🌿 Git完全マスター講座:分岐から統合まで、これだけ見れば全てがわかる!
約 19 分で読めます
美しい分岐のように、Gitのブランチも優雅に管理しよう
🎯 この記事で学べること
- ✅ Gitの基本概念から応用まで
- ✅ ブランチ戦略とワークフロー
- ✅ 実際のプロジェクトでの運用方法
- ✅ トラブルシューティングとベストプラクティス
📚 第1章:Gitの根本を理解する
🌱 Gitとは何か?
Gitは分散型バージョン管理システムです。画像のように、一つの幹(メインブランチ)から複数の枝(フィーチャーブランチ)が分岐し、最終的に統合される仕組みを持っています。
💡 重要な概念
- リポジトリ:プロジェクトの全履歴を保存する場所
- ブランチ:開発の流れを分岐させる仕組み
- コミット:変更を記録するスナップショット
- マージ:分岐した変更を統合する操作
🔧 環境セットアップ
まずはGitの初期設定から始めましょう:
# Gitのグローバル設定
git config --global user.name "あなたの名前"
git config --global user.email "your-email@example.com"
# デフォルトブランチ名を設定
git config --global init.defaultBranch main
# 設定確認
git config --list
🌿 第2章:ブランチ戦略をマスターする
📊 Git Flow – プロダクション運用の王道
画像で表現されているような美しい分岐構造を実現するGit Flowを学びましょう:
🏠 メインブランチ
main
– 本番環境のコードdevelop
– 開発統合ブランチ
🌱 サポートブランチ
feature/*
– 新機能開発release/*
– リリース準備hotfix/*
– 緊急修正
🚀 ハンズオン:実際にブランチを作って体験
👥 チーム開発シミュレーション
実際のプロジェクトを想定して、以下の手順を実行してみましょう:
ステップ1:プロジェクト初期化
# 新しいプロジェクトディレクトリを作成
mkdir git-mastery-project
cd git-mastery-project
# Gitリポジトリを初期化
git init
# 最初のファイルを作成
echo "# Git Mastery Project" > README.md
echo "console.log('Hello, Git!');" > main.js
# 初期コミット
git add .
git commit -m "🎉 Initial commit: プロジェクト開始"
ステップ2:開発ブランチの作成
# developブランチを作成・切り替え
git branch develop
git checkout develop
# または、作成と切り替えを同時に
git checkout -b develop
ステップ3:フィーチャーブランチでの開発
# 新機能のブランチを作成
git checkout -b feature/user-authentication
# 新機能を実装
echo "function login(user) { return true; }" >> main.js
# 変更をコミット
git add main.js
git commit -m "✨ feat: ユーザー認証機能を追加"
# developブランチに戻る
git checkout develop
# フィーチャーブランチをマージ
git merge feature/user-authentication
🔄 第3章:高度なGit操作をマスターする
⚡ Rebase vs Merge – いつどちらを使う?
Merge
履歴を保持、安全
git merge feature-branch
Rebase
履歴を整理、きれい
git rebase main
🔍 ハンズオン:コンフリクト解決の実践
⚠️ コンフリクト発生シナリオ
実際にコンフリクトを発生させて、解決方法を学びましょう:
# 2つのブランチで同じファイルを編集
git checkout -b feature/header-update
echo "// Updated header v2.0" > header.js
git add header.js
git commit -m "🎨 style: ヘッダーデザイン更新"
git checkout develop
echo "// Header with new logo" > header.js
git add header.js
git commit -m "🖼️ feat: 新しいロゴを追加"
# マージでコンフリクト発生
git merge feature/header-update
コンフリクト解決の手順:
- コンフリクトファイルを開く
<<<<<<<
,=======
,>>>>>>>
マーカーを確認- 適切なコードを選択・編集
git add
でマークgit commit
で解決完了
🏗️ 第4章:実践的なワークフロー
👥 GitHub Flow – シンプルで効果的
多くのオープンソースプロジェクトで採用されているGitHub Flowを実践してみましょう:
🔄 GitHub Flow の6ステップ
- 1️⃣ ブランチ作成:mainから新しいブランチを切る
- 2️⃣ コミット追加:機能開発とコミット
- 3️⃣ プルリクエスト作成:コードレビューを依頼
- 4️⃣ 議論とレビュー:チームでコードを確認
- 5️⃣ テスト:CI/CDでの自動テスト実行
- 6️⃣ マージ:mainブランチに統合
🔧 ハンズオン:チーム開発シミュレーション
# リモートリポジトリのクローン
git clone https://github.com/username/project.git
cd project
# 新機能ブランチを作成
git checkout -b feature/shopping-cart
# 開発とコミット
echo "class ShoppingCart { }" > cart.js
git add cart.js
git commit -m "🛒 feat: ショッピングカート機能の追加"
# リモートにプッシュ
git push origin feature/shopping-cart
# GitHub上でプルリクエストを作成
# (ブラウザでGitHubを開いて操作)
🚨 第5章:トラブルシューティング
🔙 取り消し操作のマスター
Working Directory
git checkout -- file.txt
Staging Area
git reset HEAD file.txt
Last Commit
git reset --soft HEAD~1
🔍 ハンズオン:履歴の調査と修正
# 履歴を美しく表示
git log --oneline --graph --all
# 特定のファイルの変更履歴
git log --follow -- filename.js
# 特定のコミットの詳細
git show commit-hash
# インタラクティブなリベース(履歴の書き換え)
git rebase -i HEAD~3
🌟 第6章:プロレベルのGit活用法
🏷️ Git Hooks – 自動化の力
コミット前の自動チェックやデプロイ自動化を実現:
# pre-commit hookの例
#!/bin/sh
# .git/hooks/pre-commit
echo "🔍 Linting code..."
npm run lint
if [ $? -ne 0 ]; then
echo "❌ Lint failed. Commit aborted."
exit 1
fi
echo "✅ All checks passed!"
📊 高度なブランチ戦略
🎯 プロダクト別戦略選択
- Web アプリ:GitHub Flow + 継続的デプロイ
- モバイルアプリ:Git Flow + リリースブランチ
- ライブラリ:Semantic Versioning + タグ管理
- マイクロサービス:Trunk-based Development
🎓 まとめ:Gitマスターへの道
🏆 あなたは今、Gitマスターです!
✅ 習得したスキル
- • 基本的なGit操作
- • ブランチ戦略の理解
- • コンフリクト解決
- • チーム開発ワークフロー
- • 高度な履歴操作
🚀 次のステップ
- • 実際のプロジェクトで実践
- • CI/CDパイプライン構築
- • Git Hooks活用
- • 大規模プロジェクト運用
- • GitOps実装
📚 さらなる学習リソース
- 📖 Pro Git Book – 公式ドキュメント
- 🎮 Learn Git Branching – インタラクティブ学習
- 🔧 gitignore テンプレート
- 🎯 Conventional Commits – コミットメッセージ規約
🌿 この記事の画像のように、あなたのコードも美しく分岐し、
チーム全体で素晴らしいプロダクトを育てていきましょう!