未分類

🌿 Git完全マスター講座

分岐から統合まで、これだけ見れば全てがわかる!

2025

🌿 Git完全マスター講座 分岐から統合まで、これだけ見れば全てがわかる!

20.07.2025
0 コメント
328 文字
約 19 分で読めます
📖 🌿 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

コンフリクト解決の手順:

  1. コンフリクトファイルを開く
  2. <<<<<<<, =======, >>>>>>>マーカーを確認
  3. 適切なコードを選択・編集
  4. git addでマーク
  5. git commitで解決完了

🏗️ 第4章:実践的なワークフロー

👥 GitHub Flow – シンプルで効果的

多くのオープンソースプロジェクトで採用されているGitHub Flowを実践してみましょう:

🔄 GitHub Flow の6ステップ

  1. 1️⃣ ブランチ作成:mainから新しいブランチを切る
  2. 2️⃣ コミット追加:機能開発とコミット
  3. 3️⃣ プルリクエスト作成:コードレビューを依頼
  4. 4️⃣ 議論とレビュー:チームでコードを確認
  5. 5️⃣ テスト:CI/CDでの自動テスト実行
  6. 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実装

📚 さらなる学習リソース

🌿 この記事の画像のように、あなたのコードも美しく分岐し、
チーム全体で素晴らしいプロダクトを育てていきましょう!

この記事が役に立ったらシェアしてください