前回の記事では、スマホから自宅PCのClaude Codeを操作するためにPockodeを作った、という話を書きました。
しばらく実際に使ってみて、次に気になってきたのが並列作業です。
Claude Codeを使っていると、待ち時間がだんだんもったいなく感じてきます。
Pockodeのworktree切り替え機能
そこで、Pockodeにgit worktreeを扱う機能を実装しました。
サイドバーから数タップで、簡単にworktreeの作成・切り替えができます。
Pockodeはモバイルファーストで設計していますが、私はPCでもPockodeを常用しています。
モバイル向けに「簡単に切り替えられる」ことを重視した結果、PCで使ってもこの運用が一番楽になりました。
同時に走らせたい作業が増えてくる
機能実装をClaude Codeに任せている間に、
- 別の機能を実装したい
- 不具合の調査を進めたい
- PRレビューを片付けたい
人間が手で書いていた頃なら一つずつ順番にやっていましたが、Claude Codeを使う場合だと「同時にやらせたい」と思う状況が自然に増えてきます。
問題は、その並列作業をどう扱うかです。
同じディレクトリで並列に動かすと衝突する
Claude Codeを並列に走らせる場合、同じ作業ディレクトリを共有していると問題が起きやすくなります。
- 生成途中のファイルが上書きされる
- 片方の作業が、もう片方の前提を崩してしまう
- 状態が揺れて、どこまで進んだのか分かりにくくなる
注意深く運用すれば回せないこともありませんが、並列作業を前提にすると、常に気を張る必要が出てきます。
そうなるとgit worktreeが一番自然
そこで使うことになるのがgit worktreeです。
worktree自体の説明は省きますが、この仕組みを使うと、同じリポジトリをブランチごとに別ディレクトリとして展開できます。
- 作業AはディレクトリA
- 作業BはディレクトリB
という風に物理的に分かれた環境で作業できるので、Claude Codeを並列に動かすには最適です。
ただし、面倒
一方で、worktreeの運用は正直なところ少し面倒です。
- コマンドを覚えていられない
- 不要になったworktreeを消し忘れる
- 作業ごとにディレクトリを移動して、Claude Codeを立ち上げ直すのが面倒
有用なのは分かっていても、この手間が積み重なると、つい避けたくなります。
PCでさえそう感じるのですから、モバイル環境ではなおさらです。
並列で作業する
最近はこんな感じで作業しています。
- worktree A
- session A:機能Aの仕上げ
- session B:機能Aに対するレビュー
- worktree B
- session BA:機能Bのプラン
- worktree C
- session CA:機能CのPRレビュー
機能Aの作業に集中しつつ、隙間時間で機能BやCの命令だけ出しておく、という使い方です。
Claude Codeにたくさん働いてもらって、Maxプランの元を取りましょう。
マルチスレッド開発
シングルスレッドで仕事を進めるなら、従来のやり方でも問題ありません。
ですが、Claude Codeを並列で動かし始めると、作業ディレクトリを分けたくなります。
git worktreeはそれにうってつけの仕組みで、Pockodeはそれをビルトインでサポートします。
マルチスレッドで開発を回しましょう。
PCからでも、モバイルからでも。
原文: https://sijiaoh.com/posts/pockode-git-worktree-parallel-workflow/
