システム開発

Git運用フローで開発速度を2倍にする

2025-11-15
15分

Git運用フローで開発速度を2倍にする

適切なGit運用により、弊社ではコンフリクト解決時間が85%削減、デプロイ頻度が3倍に向上、本番障害が68%減少しました。

Git運用は単なる「バージョン管理」ではなく、チーム開発の効率とコード品質を左右する最重要プラクティスです。

ブランチ戦略: Git Flow vs GitHub Flow

項目Git FlowGitHub Flow
ブランチ数多い(main, develop, feature, release, hotfix)少ない(main, feature のみ)
複雑さ高い低い
デプロイreleaseブランチ経由mainマージで即デプロイ
推奨ケース複数バージョン管理が必要(パッケージ、組み込みソフト)Web アプリ、SaaS(推奨)

弊社の推奨: GitHub Flow(シンプル運用)

  1. 1. mainブランチから feature ブランチを切る
  2. 2. feature ブランチで開発・コミット
  3. 3. Pull Request を作成
  4. 4. コードレビュー → 承認
  5. 5. main にマージ → 自動デプロイ

ブランチ命名規則

推奨フォーマット:

<type>/<issue-number>-<description>

type(種類):

  • feature/ - 新機能
  • fix/ - バグ修正
  • refactor/ - リファクタリング
  • docs/ - ドキュメント更新
  • test/ - テスト追加
  • hotfix/ - 緊急修正

具体例:

✅ feature/123-user-registration

✅ fix/456-login-error

✅ refactor/789-api-endpoints

❌ feature-user-registration(区切りが不明確)

❌ user-reg(略語で何か不明)

コミットメッセージの書き方

❌ 悪い例

修正

update

いろいろ直した

WIP(Work In Progress の略だが、何をしているのか不明)

→ 何を変更したのか全く分からない

✅ 良い例(Conventional Commits)

フォーマット:

<type>(<scope>): <subject>

feat(auth): ユーザー登録機能を追加

fix(login): パスワード検証エラーを修正

refactor(api): エンドポイント構造を整理

docs(readme): インストール手順を更新

test(user): ユーザー作成のテストを追加

詳細な説明が必要な場合:

feat(payment): クレジットカード決済機能を追加

- Stripe API を統合
- 決済フォームのバリデーション実装
- エラーハンドリングを追加

Closes #123

コンフリクトを減らす5つのプラクティス

1
main ブランチを頻繁に取り込む

feature ブランチで長期間開発すると、main との差分が大きくなりコンフリクトが増える。

# 毎日または開発の区切りで main を取り込む
git checkout feature/123-user-auth
git fetch origin
git merge origin/main
# コンフリクトがあれば解決
git push
2
feature ブランチは小さく保つ

大きな feature は分割し、早くマージする。

  • • 目安: 2-3日以内にマージできる大きさ
  • • 大きな機能は複数のPRに分割
  • • 「動く最小単位」でマージ
3
同じファイルの同時編集を避ける

チーム内で作業の重複を防ぐコミュニケーション。

  • • Slack等で「今〇〇のファイルを触っています」と共有
  • • Issue に担当者を明記
  • • 同じ領域を触る場合は順番を調整
4
リベースではなくマージを使う

チーム開発ではリベースは危険。マージが安全。

注意: 共有ブランチでの `git rebase` は履歴を書き換えるため、他のメンバーに影響を与える。個人ブランチのみで使用。

5
自動フォーマッターを導入

スペース・インデントの差異によるコンフリクトを防ぐ。

  • • Prettier(JavaScript/TypeScript)
  • • Black(Python)
  • • gofmt(Go)
  • • pre-commit フックで自動実行

緊急時の対応(hotfix)

シナリオ: 本番環境で重大なバグが発見され、即座に修正が必要。

Hotfix フロー:

  1. 1. hotfix ブランチを作成
    git checkout main
    git pull
    git checkout -b hotfix/critical-bug-fix
  2. 2. 最小限の修正を実施

    バグ修正のみに集中。リファクタリングや機能追加はしない。

  3. 3. テスト実施

    自動テスト + 手動検証を徹底。

  4. 4. 緊急PRを作成

    タイトルに「[HOTFIX]」をつけ、優先レビューを依頼。

  5. 5. 即座にマージ・デプロイ
    git checkout main
    git merge hotfix/critical-bug-fix
    git push
    # 自動デプロイまたは手動デプロイ

よくある失敗と対策

失敗1: main に直接プッシュしてしまう

レビューなしでマージされ、バグが混入。

対策: GitHub の Branch Protection Rules で main への直接プッシュを禁止。PR必須に設定。

失敗2: コミットが巨大すぎる

1コミットで100ファイル変更など。レビュー不可能。

対策: 論理的な単位で小さくコミット。「動く最小単位」を意識。

失敗3: マージ前にテストしない

main にマージ後に動作しないことが判明。

対策: CI/CD でテスト自動実行。マージ前に必ずテストが通ることを確認。

まとめ

Git運用フローの最適化は、チーム開発の効率を大きく左右します。GitHub Flow のようなシンプルなブランチ戦略、明確な命名規則、小さく頻繁なマージ。これらを実践することで、コンフリクトを減らし、開発速度を大幅に向上できます。

弊社では、これらの運用ルールを導入することで、コンフリクト解決時間が85%削減され、デプロイ頻度が3倍に向上し、本番障害が68%減少しました。

この記事をシェア:

おすすめの記事

株式会社Apple Seed - システム開発・AI開発