AgentSkillsCN

git-worktree

使用 git-wt 进行 Git 工作树管理指南。详细介绍工作树的创建、切换、删除与配置。

SKILL.md
--- frontmatter
name: git-worktree
description: git-wt を使用した Git worktree 管理ガイド。worktree の作成、切り替え、削除、設定について説明します。

git-worktree

git-wt は Git worktree をより便利に扱うためのツールです。ブランチ間の移動や複数ブランチの同時作業を効率化します。

git-wt とは

Git worktree は同一リポジトリの複数ブランチを別ディレクトリで同時に開く機能です。git-wt はこれをシンプルなコマンドで操作できるようにします。

インストール

bash
brew install k1LoW/tap/git-wt

基本コマンド

worktree 一覧表示

bash
git wt

現在の worktree 一覧を表示します。

worktree 作成/切り替え

bash
git wt <branch>
  • 既存のブランチ: そのブランチの worktree に切り替え(なければ作成)
  • 新規ブランチ: worktree を作成してそこに移動

worktree 削除

bash
# 通常の削除
git wt -d <branch>

# 強制削除
git wt -D <branch>

シェル統合

zsh で git wt 後に自動的にディレクトリ移動するには、以下を .zshrc に追加:

bash
eval "$(git wt --init zsh)"

bash の場合:

bash
eval "$(git wt --init bash)"

設定オプション

~/.config/git/config または各リポジトリの .git/config で設定できます。

設定項目

設定説明デフォルト
wt.basedirworktree の作成先ディレクトリ../worktrees/{gitroot}
wt.copyignored.gitignore ファイルをコピーfalse
wt.copyuntracked未追跡ファイルをコピーfalse
wt.copymodified変更済みファイルをコピーfalse
wt.hookworktree 作成後に実行するコマンドなし

推奨設定例

ini
[wt]
    copyignored = true
    copyuntracked = true
    copymodified = true
    hook = test -f .envrc && direnv allow || true
    basedir = ../worktrees/{gitroot}

設定の解説:

  • copyignored/copyuntracked/copymodified = true: 作業中のファイルを新しい worktree にコピー。環境設定ファイルなどを引き継げる
  • hook = test -f .envrc && direnv allow || true: direnv 環境変数を自動で許可。.envrc がない場合はスキップ
  • basedir = ../worktrees/{gitroot}: worktree を親ディレクトリの worktrees/ 以下に配置

使用例

機能開発中に別ブランチの作業が必要になった場合

bash
# 現在のブランチで作業中
git wt hotfix-123
# → ../worktrees/myrepo/hotfix-123 に移動して作業

# 作業完了後、元のブランチに戻る
git wt feature-abc

複数の PR を同時にレビュー

bash
# PR #1 のブランチを確認
git wt pr-1-branch
# レビュー...

# PR #2 のブランチを確認(別ウィンドウで)
git wt pr-2-branch
# レビュー...

トラブルシューティング

direnv エラーが出る

worktree 作成時に .envrc: No such file or directory のようなエラーが出る場合、hook 設定を確認してください:

ini
# 修正前(.envrc がないとエラー出力)
hook = direnv allow ; true

# 修正後(.envrc がない場合はスキップ)
hook = test -f .envrc && direnv allow || true

worktree が見つからない

bash
# worktree の一覧と場所を確認
git worktree list

関連リンク