Claude Codeで開発効率を爆上げ!あなたのエンジニア力を100倍にする「超並列開発」術 🔥
はじめに
こんにちは!株式会社OCT-PATHでCTOをしている黛 政隆です。(Xはこちら: @masataka_net)
皆さんは、Anthropic社が提供するAIコーディングアシスタント「Claude Code」を使っていますか?
長時間かかる複雑なタスクでも、最後まで粘り強くやり遂げてくれるClaudeの能力は本当に素晴らしいですよね。私も日々その恩恵にあずかっています。
そんなClaudeと開発を進めていると、ふとこう思うわけです。
「今作っているこの機能、あっちのバグ修正と、こっちのリファクタリングも、全部同時にClaudeにやってもらえないかな…?」
まるで優秀なアシスタントが3人いるかのように、複数のタスクを並列で実行したい。でも、同じリポジトリ(プロジェクトフォルダ)だと、ブランチを切り替える手間があって難しい…と諦めかけていました。
ところが、灯台下暗しとはこのこと。Claude Codeの公式チュートリアルを改めて読んでみたら…普通にやり方が書いてありました(笑)。いやー、公式ドキュメントはちゃんと読むべきですね、本当に。
ということで今回は、この公式で推奨されている方法をベースに、同じリポジトリで複数のタスクを同時に実行するための、とっておきの方法を共有します!
最近は、CursorやClaude Codeを使って、非エンジニアの方でも「バイブスコーディング」を楽しんでいると聞きます。そこでこの記事では、黒い画面(ターミナル)でのコマンド操作が苦手な方でも大丈夫なように、GUI(画面ポチポチ)で完結する方法をご紹介しますので、どうぞご安心ください!
今回の主役「Git Worktree」とは?
今回の方法のキモとなるのが「Git Worktree」という機能です。
「なにそれ?」と思った方も多いかもしれません。簡単に言うと、「1つのリポジトリのブランチを、それぞれ別のフォルダとしてPC上に作成できる」 というGitの標準機能です。
通常、新しい機能開発をするときは git checkout -b feature/new-task
のようにブランチを切り替えますが、あくまで同じフォルダ内で作業しますよね。
Git Worktreeを使うと、例えば main
ブランチは my-project
フォルダ、feature-a
ブランチは my-project-feature-a
フォルダ、といった具合に、ブランチごとに物理的にフォルダを分けて管理できるんです。
正直なところ、私もこの機能の存在は知っていましたが、「一体どんな時に使うんだろう…?」と、その真価を理解していませんでした。しかし、Claude CodeのようなAIアシスタントと共同で開発する現代において、このGit Worktreeが、まさに本領を発揮する時が来たと感じています。
実際の使い方(GUIで簡単!)
Git Worktreeは、標準では以下のようなコマンドで使います。
git worktree add ../my-project-feature -b feature-branch develop
この例だと、my-project
フォルダの一つ上の階層にmy-project-feature
というフォルダを作り、そこにdevelop
ブランチをベースにfeature-branch
というブランチの内容を展開します。
git worktree add [①フォルダパス] [②ブランチオプション] [③ベースブランチ]
↓ ↓ ↓
../my-project-feature -b feature-branch develop
「うーん、やっぱりコマンドはちょっと…」と思ったあなた、ご安心ください!
VSCode(もちろんCursorやWindSurfでもOK!)に、以下の拡張機能をインストールすれば、すべてUI操作だけで完結します。
-
Git Worktree Manager
https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens
この拡張機能は非常にシンプルながらWorktreeの管理機能もバッチリ備わっています。
(VSCodeのUIから簡単操作)
- 現在のワークツリーの状態確認
- 新しいワークツリーの作成
- 不要になったワークツリーの削除
などが、誰でも直感的にポチポチとクリックするだけで行えます。本当に便利なので、ぜひインストールしてみてください!
実際のディレクトリ構造は?
さて、この魔法のような機能が、実際にはどのように実現されているか気になりますよね。
答えはとてもシンプルで、以下のように物理的にフォルダが分かれているだけなんです。分かりやすい!
# 元のプロジェクト
/Users/username/my-project/
├── .git/
├── src/
├── package.json
└── README.md
# ワークツリー作成後
/Users/username/
├── my-project/ # メインワークツリー (例: mainブランチ)
│ ├── .git/ # 実際のGitリポジトリ本体はここにある
│ ├── src/
│ └── package.json
├── my-project-feature-a/ # 新しい物理フォルダ (feature-aブランチ)
│ ├── .git # ↑の.git/worktreesへのリンク情報が書かれたファイル
│ ├── src/ # feature-aブランチのファイル
│ └── package.json # feature-aブランチのファイル
└── my-project-bugfix/ # 別の物理フォルダ (bugfixブランチ)
├── .git # こちらも同様のファイル
├── src/ # bugfixブランチのファイル
└── package.json # bugfixブランチのファイル
Gitリポジトリの本体(.git
フォルダ)は元の場所に一つだけあり、新しく作られたフォルダには、その本体を参照するための情報が書かれた.git
という名前の「ファイル」が置かれる仕組みです。シンプルながら、非常によくできていますよね。
各ブランチをVSCodeで開ける!最強の並列開発環境の完成
フォルダが物理的に分かれるということは…?
そうです!それぞれのフォルダを、別のVSCode(Cursor)ウィンドウで開くことができるんです!
(こんなイメージで、1タスク1ウィンドウで開発が進められます!)
これにより、
- ウィンドウA:
feature-a
ブランチのタスクをClaudeに任せる - ウィンドウB:
bugfix
ブランチの修正をClaudeにやってもらう - ウィンドウC:
refactor
ブランチで、自分自身がコード整理をする
といった、夢のような完全並列開発が可能になります。
Claude CodeもCursorも基本的には並列で動作してくれるので、まるで優秀なエンジニアが複数人、同時に自分のPCで作業してくれているかのような状態になります。
もちろん、APIのレートリミット(短時間での使いすぎ制限)やクレジット消費には気を配る必要がありますが、それを差し引いても、開発効率が劇的に向上することは間違いありません。
🤖 同時並列開発を成功させるための「6つ」のヒント
さて、ここからは実際に並列開発をスムーズに進めるための、いくつか具体的なヒントをお伝えします。
1. 環境構築はシンプルに
Worktreeで新しいフォルダを作っても、Node.jsのパッケージ(node_modules
)などは共有されません。そのため、各フォルダで環境構築をやり直す必要があります。
cd ../my-project-feature-a
npm install
この手間を最小限にするためにも、普段から複雑な環境構築は避け、できるだけシンプルな構成を心がけるのがおすすめです。
理想は「npm install
を実行して、.env.local
(環境変数ファイル)をコピペすれば完了する」くらいの手軽さです。
また、ローカルのデータベースなどをどうするかという問題もありますが、例えばSupabaseをDockerで動かしているなら、ローカルに1つコンテナを立てておけば、各Worktreeから共通で利用できます。
2. 指示用のMarkdownファイルを用意する
Claudeにタスクを指示する際、毎回長い文章をチャットに打ち込むのは大変ですよね。
そこで、タスク指示用のMarkdownファイルを用意することを強くお勧めします。
まず、プロジェクトのルートに CLAUDE.md
というファイルを置くと、Claudeはそこに書かれたルールを共通の指示として認識してくれます。こちらはメインのブランチに置いて共有しましょう。
さらに、それぞれのタスク(Worktree)ごとに、ISSUE.md
のような指示書ファイルを作成します。(これらはGitの管理対象外にしたいので、.gitignore
にISSUE.md
などを追加しておきましょう)
そしてClaudeには、こう指示するだけです。
ISSUE.md
にある要件を理解して、完璧に実装してください。
このISSUE.md
に、実装してほしいこと、修正してほしいこと、守ってほしいルールなどを詳しく書いておけば、Claudeはそれを忠実に実行してくれます。
3. ポートを分ければ同時デバッグも可能
Next.jsやReactなどでWebアプリを開発している場合、開発サーバーを起動する必要がありますよね。これも、ポート番号を分けることで同時に複数起動できます。
ウィンドウA(feature-a)のターミナル:
npm run dev -- --port 3000
ウィンドウB(bugfix)のターミナル:
npm run dev -- --port 3001
ウィンドウC(refactor)のターミナル:
npm run dev -- --port 3002
これで、http://localhost:3000
, http://localhost:3001
, http://localhost:3002
で、それぞれのブランチの動作確認が同時に行えます。もちろん、自分の頭が混乱しないように注意は必要ですが(笑)。
4. 開発環境の混乱を避ける「Peacock」
VSCode(Cursor)のウィンドウを3つも4つも開いていると、「あれ、このウィンドウはどのタスクだっけ?」と混乱しがちです。
そんな悩みを一発で解決してくれる、最高の拡張機能があります。
この拡張機能をインストールすると、コマンドパレット(Cmd+Shift+P
)から「Peacock: Change to a Favorite Color」などを選ぶだけで、VSCodeのウィンドウ枠に色を付けてくれるんです。
(赤色に設定したイメージ)
- 機能追加(赤色)
- バグ修正(青色)
- リファクタリング(緑色)
のように、タスクの種類ごとに色分けしておけば、ウィンドウを一目見ただけで、どのタスクの作業をしているかが直感的に分かります。とてもシンプルですが、効果は絶大です!
5. 完了通知を確実に受け取る
Claudeに長時間のタスクを任せていると、いつ終わったのか分かりにくいことがありますよね。
公式ドキュメントにはOSの通知機能を使う方法が書かれていますが、私の環境(Mac + Cursor)ではうまく動作しないことがありました。
そこで、もっと確実な方法として、CLAUDE.md
(共通指示書)に以下のルールを追記することをお勧めします。
【重要】
すべてのタスクが完了したら、**必ず最後に**以下のコマンドをターミナルで実行してください。
```bash
echo -e "\a"
```
このコマンドは、ターミナルの「ベル音」を鳴らすというシンプルなものです。これをClaudeに毎回実行させることで、タスク完了を音で知らせてくれます。原始的ですが、非常に効果的です!
6. コンフリクトのリスクをどう下げるか
並列開発を行う上で、避けては通れない最大の課題がコンフリクトです。
コンフリクトを完全にゼロにすることは難しいですが、リスクを最小限に抑えるためのヒントはあります。
- タスクを小さく分割する: 機能Aと機能Bが同じファイルを変更しそうなら、そもそもそれらを同時に開発しない、という判断も重要です。AIに任せるタスクは、可能な限り変更範囲が限定されるように、小さく具体的に分割しましょう。
-
こまめに
main
を取り込む: 1つのタスクが完了してmain
ブランチにマージされたら、他の作業中ブランチに、すぐにその変更内容を取り込み(rebase
またはmerge
)ましょう。変更が小さいうちにコンフリクトを解消しておけば、AIも「コンフリクトを解決して」という指示でうまく対応してくれる可能性が高まります。
「小さなタスク → 開発 → こまめなリベース → 即マージ」
この高速なサイクルを回すことで、各ブランチが main
ブランチから大きく乖離(かいり)するのを防ぎ、結果的に大きなコンフリクトを避けることができます。
おわりに
今回は、Git WorktreeとClaude Codeを組み合わせた、超効率的な並列開発術をご紹介しました。
この方法を使えば、まるで優秀なエンジニアチームと一緒に開発しているかのような、これまでにない開発体験が待っています。面倒な作業や時間のかかる実装はどんどんClaudeに任せて、私たちはより創造的で、本質的な課題解決に集中できるようになります。
もちろん、最初は少し戸惑うこともあるかもしれませんが、この記事で紹介したヒントを参考に、ぜひ一度試してみてください。あなたの開発スタイルが、そして「エンジニアリング」という仕事の概念そのものが、大きく変わるきっかけになるかもしれません。
皆さんの開発が、もっと楽しく、もっとパワフルになることを願っています。
Happy Hacking!!🐙
最後に、少しだけ宣伝をさせてください 🙏
AI・Web3 開発サービス
弊社OCT-PATHは、最先端のAI技術を活用し、高品質かつ短納期での開発サービスを提供しております。特にAI・Web3領域において豊富な実績と専門性を有しており、お客様のデジタルトランスフォーメーションを強力にサポートいたします。
サービスにご関心をお持ちの企業様は、ぜひ弊社ホームページよりお気軽にお問い合わせください。
NeoTechPark コミュニティ連携
弊社が運営するエンジニアコミュニティ「NeoTechPark」には、優秀なインドネシアの若手エンジニアが多数参加しており、活発な技術交流が行われております。
現在、企業様との共同ハッカソン開催による人材発掘・技術交流の取り組みを積極的に推進しております。特に昨今注目を集めているAIエージェントの構築をはじめ、最新のAI技術を活用したソリューション開発に焦点を当てたイベントの企画・運営が可能です。
グローバル人材との協業や次世代AI技術の実用化にご興味のある企業様は、ぜひお声がけいただければ幸いです。
お問い合わせ・ご相談は弊社ホームページよりお待ちしております。
Discussion