🌳

【Git Worktree】複数ブランチを同時に開いて並列開発する

に公開

はじめに

ClaudeCodeセッションを並列で進める方法で、Git Worktreeを使うことが推奨されていたのでやってみた。ClaudeCodeのドキュメントはこちら。

git worktreeコマンドの基本的な使い方

コピーするディレクトリ名とブランチ名を指定してコマンドを実行

# issue1の作業用ワークツリーを作成
git worktree add ../xxx-issue1 -b feat/#1
# コピーするディレクトリは`xxx-issue1`
# ブランチは`feat/#1`

# issue1の作業用ワークツリーを削除
git worktree remove ../xxx-issue1

実際にやってみる

自分は、zennの記事を~/Projects/ghq/github.com/iskw9973/zenn-connectで管理しているので、article-a, article-bを並列して書かせたいなら、

git worktree add ../zenn-connect-worktrees/article-a -b feat/article-a

git worktree add ../zenn-connect-worktrees/article-b -b feat/article-b

# 一覧確認
git worktree list
# /Users/xxx/Projects/ghq/github.com/iskw9973/zenn-connect-worktrees/article-a  37adab6 [feat/article-a]
# /Users/xxx/Projects/ghq/github.com/iskw9973/zenn-connect-worktrees/article-b  37adab6 [feat/article-b]

ワークツリーができたので、

cd /Users/xxx/Projects/ghq/github.com/iskw9973/zenn-connect-worktrees/article-a
claude

別ターミナルで、

cd /Users/xxx/Projects/ghq/github.com/iskw9973/zenn-connect-worktrees/article-b
claude

vscodeの画面だとこんな感じで表示される

alt text

これで並行して作業を進められる

共通のファイルを操作しうる可能性がある場合に、互いの作業に影響を与えないことがメリット

まとめ

Git Worktreeを使うことで、複数issueを並行して進められ、AIエージェントを並列させたり、AIエージェントの変更と並行して作業ができる

同じブランチで2つ以上のワークツリーは作れないので、ディレクトリ自体コピーするよりも安全に開発ができることもメリットになっている

参考

Discussion