この記事は何?

gitにはworktreeという便利な機能がある。
https://qiita.com/yoichi22/items/8f92110f24690ca8966f

worktreeを使えば、ディレクトリの移動によってブランチを切り替えることができるようになる。

最近(2022年1月頃)まで、このworktreeはvscodeで使うことができなかった。
そのため数多くのvscode愛好家はworktreeの使用を断念していた(はず)。

そして、念願のworktreeのvscodeエクステンションが2022年2月にリリースされた。
この記事ではエクステンションを利用して、worktree機能をvscodeで使用できるか確認する。

使用するエクステンション

Switch Git Worktreeをインストールしておく

試す

以下のようなブランチ構成がある。

❯ git branch -a
  common
* master
  prd
  remotes/origin/HEAD -> origin/master
  remotes/origin/common
  remotes/origin/master
  remotes/origin/prd

要するにローカルにもリモートにもmaster/prd/commonといった3つのブランチがある状態である。

> pwd
/test/myrepo

❯ git worktree add ../prd prd
> git worktree add ../common common

prdとcommonブランチのworktreeを親ディレクトリにぶら下げた

/test
├── myrepo
│   ├── README.md
│   └── src
├── common
│   └── src
└── prd
    └── src

vscodeにてレポジトリのディレクトリ(今回の場合は/test/myrepo)を開く
この時点ではカレントブランチがmasterになっている

コマンドパレットにて”Switch Worktree”を入力

移動可能なworktreeが表示されるため、移動したいworktreeを選択する

今回はcommonを選択する

そうすると一度vscodeがリロードされて、worktreeとして登録されたディレクトリ(/test/common)が開かれる。ブランチもSwitch Worktreeで指定したcommonに切り替わっている。

以上のことから、Switch Git Worktreeエクステンションを使いvscodeでworktreeが使えることがわかった。

元記事はこちら

vscodeでgit worktreeを使う
著者:
@K5K