Skip to content
git-worktree logo

git-worktree - Git Worktree 操作

git-worktree

Git worktree を使った複数ブランチの同時作業管理。 使用タイミング: (1) 複数機能を並行開発したい時 (2) PRレビュー中に別作業したい時 (3) 本番ホットフィックスと開発を同時進行したい時 (4) worktreeの使い方を知りたい時。 トリガー例: 「worktreeで」「別ブランチを同時に」「並行開発したい」 「PRレビューしながら開発」「ホットフィックス用のworktree」

SKILL.md

Full skill instructions

git-worktree - Git Worktree 操作

複数ブランチを同時に作業するための Git worktree 管理。


概要

Git worktree を使うと、1つのリポジトリから複数の作業ディレクトリを作成できる。

メリット:

  • ブランチ切り替えなしで複数機能を並行開発
  • PRレビュー中に別作業が可能
  • 本番ホットフィックスと開発を同時進行

基本コマンド

Worktree 作成

# 新規ブランチで作成
git worktree add ../​project-feature-x feature-x

# 既存ブランチで作成
git worktree add ../​project-hotfix hotfix/​urgent-fix

# リモートブランチをチェックアウト
git worktree add ../​project-review origin/​feature-y

Worktree 一覧

git worktree list

出力例:

/​path/​to/​project          abc1234 [main]
/​path/​to/​project-feature  def5678 [feature-x]
/​path/​to/​project-hotfix   ghi9012 [hotfix/​urgent-fix]

Worktree 削除

# 作業ディレクトリを削除
rm -rf ../​project-feature-x

# Git から登録解除
git worktree prune

または一括:

git worktree remove ../​project-feature-x

ワークフロー例

1. 機能開発中にホットフィックス

# 現在: feature-x ブランチで開発中
# 緊急: 本番バグ発生

# ホットフィックス用 worktree 作成
git worktree add ../​project-hotfix -b hotfix/​login-fix main

# ホットフィックス作業
cd ../​project-hotfix
# ... 修正 ...
git commit -m "fix: resolve login issue"
git push origin hotfix/​login-fix

# 元の作業に戻る
cd ../​project
# feature-x の作業を継続

2. PRレビュー

# レビュー対象のブランチを worktree で開く
git fetch origin
git worktree add ../​project-review origin/​feature-y

# レビュー
cd ../​project-review
npm install
npm run dev

# レビュー完了後
cd ../​project
git worktree remove ../​project-review

ベストプラクティス

ディレクトリ命名

project/              # メイン (main)
project-feature-x/    # 機能開発
project-hotfix/       # ホットフィックス
project-review/       # PRレビュー

定期クリーンアップ

# 不要な worktree を確認
git worktree list

# マージ済みブランチの worktree を削除
git worktree remove ../​project-merged-feature

# 孤立した worktree を整理
git worktree prune

注意点

  1. 同じブランチを複数 worktree で開けない
  2. node_modules は各 worktree で別途インストール必要
  3. .env ファイルもコピーが必要

トラブルシューティング

"already checked out" エラー

# 別の worktree で使用中のブランチ
git worktree list  # どこで使われているか確認

孤立した worktree

# ディレクトリを手動削除した場合
git worktree prune

ブランチ削除時

# worktree で使用中のブランチは削除できない
# 先に worktree を削除する
git worktree remove ../​project-feature
git branch -d feature