はじめに
VS CodeでGit Worktreeを爆速で扱える拡張機能「Git Worktree Manager」。
これを使ってブランチを切り替える運用をしているのですが、「新しいWorktreeを作った際、環境変数ファイル(.env)がコピーされない」 という問題に直面しました。
特にフルスタック構成のプロジェクトなどでは、以下のようなケースでデフォルト設定だと無視されてしまいます。
-
.envがルート直下だけでなくサブディレクトリにある -
hoge.dev.envのような独自の名前にしている
これを設定たった1行で解決する方法をメモします。
対象の拡張機能
Git Worktree Manager (jackiotyu)
結論:この設定1行ですべて解決
設定画面で git-worktree-manager.worktreeCopyPatterns を検索し、以下の1行を追加するだけです。
追加する設定値
**/{.env,*.env}
設定画面の比較
❌ Before(うまくいかなかった時)
デフォルトに近い設定や、単純に *.env を羅列しただけだと、ルート以外のファイルや特殊な名前のファイルが漏れてしまいます。

✅ After(解決した設定)
バラバラだった設定を整理し、今回の設定 **/{.env,*.env} を追加しました。
これで、どの階層にあるどんな名前のenvファイルも、一網打尽にコピーされるようになりました。

解説:設定したGlobパターン **/{.env,*.env} の意味
この拡張機能は fast-glob という仕組みを使っているため、以下の記述が有効です。
| 記述 | 意味 | 効果 |
|---|---|---|
**/ |
再帰検索 | ルートだけでなく backend/ や docker/ など、あらゆる階層のサブディレクトリも探してくれます。 |
{} |
ブレース展開 | 複数の条件を1行にまとめます。 |
.env, *.env |
条件指定 | 「.env (完全一致)」と「xxx.env (拡張子)」の両方をカバーします。 |
これらを組み合わせることで、「どこにある、どんな名前の .env でも全てコピー対象にする」という命令になります。
応用:settings.jsonなども同様にコピー可能
この方法は .env に限らず、Git管理外にしているローカル設定ファイル全般に使えます。
例えば、自分用の settings.json や local_config.yaml などをWorktreeごとにコピーしたい場合も、同じ要領で追加すればOKです。
# 例:あらゆる階層の settings.json もコピー対象にする
**/settings.json