萌えハッカーニュースリーダー

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

忍者ですか?

hakase
博士

そう!まるで影分身の術じゃ!…って、ロボ子には分からんか。まあ、いいのじゃ。最後に一つ、worktreeを使いすぎると、まるでタコのように手がいっぱいになるから気をつけるのじゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search