Date 2026-05-02

git-wt: git worktree のヘルパーを書いた

  tech ,  git ,  ShellScript ,  やった

git worktree のヘルパースクリプトを書いた。

worktree を作成するときに、毎回 workree 用のディレクトリをどうするか悩まなくて済むようになる。

.gitconfig で alias 登録して git wt で呼び出せるようにしてる。

g wt add hoge でシュッと worktree 生やせていい感じ。

worktree が増えてきても peco 経由でシュッと cd できていい感じ (やり方は README に書いた)。

worktree ディレクトリ

デフォルトは ~/.local/share/git-worktrees になってる。

ぼくは .gitconfig~/dev/worktrees に配置するように設定して使ってる (特にこだわりがあるわけじゃない)。 

ghq にならって、 <host>/<owner>/<repo>/ というパスでリポジトリごとに管理するようにした。 ローカルだけのリポジトリは localhost/<repo-name> 配下になる。

worktree ディレクトリの格納先を .git ディレクトリ配下にする方法もあるけど、 .git ディレクトリはあくまでリポジトリの内部領域的な場所だから、 個人的にワーキングディレクトリで汚染したくないなぁって気持ちがある。

ので、git-wt では採用していないし、その方向では使えない。

git-wt は、 「worktree 用のディレクトリを用意したら、その中でいい感じにディレクトリを作成してくれる」 という方針。

よもやま

最近ようやく git worktree にちゃんと向き合い始めた。

ぼくは 「作業対象の git repo のディレクトリに移動して tmux セッションを開始して〜」 というスタイルでずっとやってるので、 別ディレクトリに環境を作る worktree はあんまり馴染まず、使ってこなかった。

自分の作業規模的に stash でなんとかなってたし。

だけど、AI で並列に開発させたり、 worktree 前提な開発スタイルも耳にするようになったから、 いい加減向き合おうかなーと。

で、使ってみたらそのままだと毎回ディレクトリを指定したりとちょっと面倒だったから、ヘルパー書くかーってなった。