はじめに
Claude Codeでコードレビューを回すようになってから、地味に困っていたことがあります。レビュー待ちで手が止まる時間です。
レビューの実行自体には数分〜十数分かかることがあり、かといって「終わるまで何もしない」のはもったいない。この記事では、その待ち時間をgit worktreeで潰す運用を、具体的なコマンドつきで紹介します。
なぜ待ち時間が発生するのか
前提として、PRを作成する前のレビューは、実装したのと同じセッション(会話ウィンドウ)ではなく、必ず別セッションを新規に立ち上げて実行するようにしています。実装した直後のセッションにそのままレビューさせると、「動くことを確認できた」という文脈を引きずって判定が甘くなるためです。
この運用自体は判定の質を上げてくれるのですが、副作用として「レビュー専用セッションの実行を待つ時間」が発生します。ここで手を止めてしまうと、単純に開発効率が落ちます。
git worktreeで待ち時間を埋める
レビュー中のブランチには一切触れず、別の作業ツリーを追加してそちらで並行して次のタスクを進めます。
# レビュー待ちのブランチとは別に、作業ツリーを追加する
git worktree add ../repo-next-task feature/next-task
このコマンドだけで、カレントのリポジトリとは別ディレクトリに、別ブランチをチェックアウトした作業ツリーが出来上がります。レビュー中のファイルには一切手を触れずに済むので、後でマージする際にコンフリクトする心配もありません。
作業が終わったら片付けます。
git worktree remove ../repo-next-task
rm -rf で直接ディレクトリを消すと .git 側の管理情報が残ってしまうため、必ず git worktree remove を使います。
運用のコツ
-
命名規則を決めておく:
../<repo名>-<タスク名>のように置き場所を統一しておくと、複数のworktreeが並んでも迷いません。 -
git worktree listで棚卸しする: 使い終わったworktreeを消し忘れると気づかないうちに溜まっていくので、たまに一覧を確認して片付けます。 - エディタは別ウィンドウで開く: 同じエディタウィンドウ内でディレクトリを切り替えると、レビュー中のブランチと作業中のブランチを取り違えやすくなります。worktreeごとに別ウィンドウを開く方が安全です。
まとめ
- PR前のレビューは実装と別セッションで行っている(判定の質を上げるため)が、副作用としてレビュー待ちの時間が生まれる
- その待ち時間は
git worktreeで作業ツリーを分け、別タスクに充てることで潰せる - 命名規則の統一・
git worktree listでの棚卸し・別ウィンドウでの編集、の3点を守ると運用コストが低い
git worktree 自体は昔からある機能ですが、「AIレビューを待つ時間」という具体的な使いどころができたことで、日常的に手が伸びる道具になりました。