🏄‍♂️

[忘れない]手元で他ブランチのコードをちょっと見たい時 git worktreeを使う

に公開

散々似たような記事はあるが、個人的にめちゃくちゃ忘れるので備忘録として残す

やりたいこと

すでに何からしらのブランチで実装中に、コードレビューや不具合調査のためにリモートブランチを手元の使い慣れたエディタで確認したい時がある。

通常であれば、一度stashしcheckoutして機能を確認するが、
ビルドに時間がかかったりするプロジェクトの場合や、今の開発状況を残しておきたい時はあんまりやりたくない。
何よりも調査やレビューが終わればそのまま元の開発に戻りたい。

開発中のブランチはそのままで、レビューのためにコードをパッともって来れないのか。

git worktreeを使う

いろいろ方法はあると思うが、個人的に早そうだと思ったのはgitのworktreeコマンド

https://git-scm.com/docs/git-worktree

やることは簡単でディレクトリとブランチを指定するだけ

git worktree add ../review feature/branch-name

あとは指定したディレクトリをエディタやら何やらで開いてレビューをしたりすればよい

code ../review

レビューが終わったらそのまま残しておいてもいいし、removeでディレクトリ指定で削除も可能
自分は散らからないように消している

git worktree remove ../review

VSCodeのgit拡張とか使っているとworktreeまでいちいち表示して煩雑だったりするので、いらなかったら消してしまっていいかもしれない

まとめ

複数の実装を並行しているときにも使えそうだけど、重そうで試せていない
レビューとか、他ブランチの実装をちょっと見たくなった時に試すくらいが手軽でいいかも

Discussion