1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

この記事は、ひとりで作るSaaS - 設計・実装・運用の記録 Advent Calendar 2025 の5日目の記事です。

昨日の記事では「個人開発のドキュメント戦略」について書きました。今日は、個人開発におけるGitブランチ戦略について書きます。

🎯 個人開発のGit運用で考えるべきこと

チーム開発では、Git-flowやGitHub Flowなど確立されたブランチ戦略があります。しかし、個人開発では状況が異なります。

個人開発の特徴:

  • 開発者は自分一人(コンフリクトが起きにくい)
  • レビュアーがいない(セルフレビューが基本)
  • 素早く改善サイクルを回したい(手続きは最小限にしたい)

一方で、以下の課題もあります。

  • 本番環境を壊したくない
  • 変更履歴を追いやすくしたい
  • AIエージェント(Claude Code)と協働する際のルールが必要

これらを踏まえて、私が個人開発しているMemoreruでは以下のブランチ戦略を採用しています。

📂 Git Worktreeで並列開発

Git Worktreeを使うと、複数のディレクトリでそれぞれ別のブランチを同時に開けます。通常のブランチ切り替えと違い、ローカルに物理的なフォルダが分かれるため、それぞれの場所で別々のClaude Codeセッションを起動できます。

なぜGit Worktreeか

一番の理由は、Claude Codeで並列開発ができるからです。

たとえば「検索機能のリファクタリング」と「決済機能の実装」という2つの大きなタスクがあるとします。それぞれ別のWorktreeを作成し、別々のClaude Codeセッションで進めます。

~/my-project/           # develop ブランチ(メインの作業場所)
~/my-project-search/    # feature/search-refactor(検索機能)
~/my-project-payment/   # feature/payment(決済機能)

ポイントは、セッションごとに会話の文脈が分かれることです。

検索機能のセッションでは検索に関する議論が蓄積され、決済機能のセッションでは決済に関する議論が蓄積されます。文脈が混ざらないので、それぞれのタスクに集中した会話ができます。

セッション1(検索機能): 「このクエリの最適化について...」
セッション2(決済機能): 「Stripeのwebhook処理について...」
→ 互いに干渉せず、それぞれの文脈で深い議論ができる

個人開発でも、AIエージェントを活用すれば「擬似的なチーム開発」が可能になります。Git Worktreeはその基盤として非常に有効です。

その他のメリット:

  • ブランチ切り替えのたびにサーバー再起動が不要
  • stash → checkout → pop の手間がない
  • 「今どのブランチにいるか」を常に意識する必要がない

セットアップ方法

並列作業が必要になったときに、featureブランチ用のWorktreeを追加します。

# メインのリポジトリ(develop)
cd ~/my-project
git branch  # developにいることを確認

# featureブランチを作成してWorktreeを追加
git worktree add ../my-project-feature1 -b feature/ui-refactor

これで~/my-project-feature1ディレクトリが作成され、feature/ui-refactorブランチがチェックアウトされます。

作業完了後のクリーンアップ

featureブランチをdevelopにマージしたら、Worktreeを削除します。

# Worktreeを削除
git worktree remove ../my-project-feature1

# ブランチも削除(マージ済みなら)
git branch -d feature/ui-refactor

🔄 ブランチ運用ルール

基本の流れ

feature → develop → main(本番)→ Vercel自動デプロイ
  1. 日常の開発: my-project(develop)で作業
  2. 並列作業: featureブランチをWorktreeで作成し、Claude Codeで並列開発
  3. マージ: feature → develop へPR、または直接マージ
  4. 本番デプロイ: develop → main へPR → Vercelが自動デプロイ

コミットルール

# ✅ 機能単位でコミット
git commit -m "feat: ユーザープロフィール編集機能を追加"
git commit -m "fix: ログイン時のエラーハンドリングを修正"

# ❌ 複数機能を一括コミット
git commit -m "いろいろ修正"

ポイント:

  • 機能単位でコミット(複数機能の一括変更禁止)
  • プレフィックスを使用(feat, fix, docs, refactor等)
  • 動作確認してからコミット

やってはいけないこと

# ❌ mainへの直接push
git push origin main  # 禁止!

# ✅ 必ずdevelop → PR → mainの流れ
git push origin develop
# → GitHub上でPRを作成

mainへの直接pushは、本番環境を壊すリスクがあるため禁止しています。

🤖 AIエージェントとの協働ルール

Claude Codeで開発する際は、以下のルールをCLAUDE.mdに明記しています。

## Git運用

### ブランチ戦略(Git Worktree)
- **日常の開発**: `~/my-project` (develop) で作業
- **並列作業**: featureブランチをWorktreeで作成
- **本番デプロイ**: GitHub上でPR作成 → merge → Vercel自動デプロイ

### コミット・プッシュルール
- **機能単位コミット**: 複数機能の一括変更禁止
- **mainへの直接push厳禁**: 必ずdevelop → PR → mainの流れ
- **動作確認必須**: コミット前に画面で動作確認
- **ユーザー確認後のコミット実行**: 勝手にコミットしない

特に重要なのは「勝手にコミットしない」というルールです。AIが良かれと思って自動コミットすると、意図しない変更が入る可能性があります。コミットは必ず人間が確認してから実行します。

📋 Vercelとの連携

Vercelは、GitHubリポジトリと連携して自動デプロイを行います。

ブランチとデプロイ環境の対応

ブランチ デプロイ先 URL
main Production example.com
develop Preview develop-xxx.vercel.app

PRを作成すると、Preview環境に自動デプロイされます。本番反映前に確認できるので便利です。

ドキュメント更新時のスキップ

ドキュメントだけの更新でデプロイを走らせたくない場合は、コミットメッセージに[skip ci]を含めます。

git commit -m "docs: READMEを更新 [skip ci]"

💡 実践Tips

Tip 1: プルリクエストのテンプレート

.github/pull_request_template.mdを用意しておくと、PRの品質が安定します。

## 概要
<!-- 何を変更したか -->

## 変更内容
-

## テスト確認
- [ ] ローカルで動作確認済み
- [ ] Preview環境で確認済み

## 備考

Tip 2: ブランチ保護ルール

GitHub上でmainブランチを保護すると、直接pushを防げます。

Settings → Branches → Branch protection rules:

  • Require a pull request before merging
  • Require status checks to pass before merging

個人開発でも設定しておくと、うっかりミスを防げます。

Tip 3: Worktreeの一覧確認

現在のWorktreeを確認するには以下のコマンドを使います。

git worktree list
# ~/my-project           abcd123 [develop]
# ~/my-project-feature1  efgh456 [feature/ui-refactor]

不要になったWorktreeはgit worktree removeで削除しましょう。

✅ まとめ

Memoreruでの実践から得た学びをまとめます。

うまくいっていること:

  • Git Worktreeでfeatureブランチを並列管理し、Claude Codeで擬似チーム開発
  • develop → PR → mainの流れで本番を保護
  • CLAUDE.mdでAIエージェントにルールを伝達

注意が必要なこと:

  • 個人開発でも油断すると本番を壊す
  • AIに任せきりにせず、コミットは人間が確認
  • 使い終わったWorktreeは忘れずに削除

個人開発だからといってGit運用を適当にすると、後で困ることになります。最低限のルールを決めておくことをおすすめします。

明日は「Supabaseでスキーマ設計:テーブル分割と正規化の実践」について解説します。


シリーズの他の記事

  • 12/4: 個人開発のドキュメント戦略:設計書・思考ログの使い分け
  • 12/6: Supabaseでスキーマ設計:テーブル分割と正規化の実践
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?