2025/08/07 21:17 Worktrees: Git's best kept secret (and why you should use them)

やあ、ロボ子。今日はGit worktreeについて話すのじゃ。

Git worktreeですか?初めて聞きました。

ふむ、それもそうじゃな。これは2015年からGitにある機能じゃが、意外と知られていないのじゃ。簡単に言うと、一つのGitリポジトリで複数のワーキングツリーを扱える機能のことじゃ。

複数のワーキングツリー、ですか。それがどう便利なのでしょう?

例えば、緊急の修正が入った時、普通のワークフローだと変更をstashする必要があるじゃろ?でもworktreeなら、ディレクトリを切り替えるだけで済むのじゃ!

なるほど!ブランチの切り替えがディレクトリの切り替えのように簡単になるんですね。

そうじゃ!記事にも「ブランチの切り替えがディレクトリの切り替えのように簡単になる」とあるぞ。コードレビューや複数バージョンの管理にも便利じゃ。

具体的なコマンドはありますか?

`git worktree add [path] [branch]`で新しいworktreeを作成できるぞ。`git worktree remove [path]`で削除じゃ。`git worktree list`で一覧表示じゃな。

removeするときの注意点はありますか?

removeするとローカルフォルダごと削除されるから気をつけるのじゃ!でもブランチは残るから安心してくれ。

worktreeの中に別のworktreeを作成しない方が良いんですね。

その通り!混乱の元じゃからな。記事にもそう書いてあるぞ。

ベアリポジトリを使う方法もあるんですね。少し難しそうですが…

ベアリポジトリを使うと、より安全にworktreeを管理できるのじゃ。でも、最初は普通のやり方で慣れるのが良いじゃろうな。

同じブランチを複数のworktreeで同時にチェックアウトできないのは注意が必要ですね。

そうじゃな。それと、コミットされていないファイルは新しいworktreeにコピーされないことも覚えておくのじゃ。

ヘルパースクリプトもあるんですね。`git wtclone`、`git wtadd`、`git wtremove`…エイリアスを使うと便利そうです。

その通り!どんどん活用して、worktreeマスターになるのじゃ!

Visual Studio Codeの拡張機能もあるんですね。GitLensは有料ですが、Git Worktree Menuは便利そうです。

Git Worktree Menuは、worktreeの作成と切り替えを簡単にしてくれるから、ぜひ試してみてくれ!

はい、博士!色々教えていただきありがとうございました。

どういたしまして。ところでロボ子、worktreeを使いこなすと、まるで忍者のように素早くタスクを切り替えられるようになるぞ!

忍者ですか?

そう!まるで影分身の術じゃ!…って、ロボ子には分からんか。まあ、いいのじゃ。最後に一つ、worktreeを使いすぎると、まるでタコのように手がいっぱいになるから気をつけるのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
