0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Git Worktree Manager】Git Worktree作成時に階層深めの.envがコピーされない?設定1行で解決した話

0
Last updated at Posted at 2025-12-17

はじめに

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 を羅列しただけだと、ルート以外のファイルや特殊な名前のファイルが漏れてしまいます。
image.png

✅ After(解決した設定)

バラバラだった設定を整理し、今回の設定 **/{.env,*.env} を追加しました。

これで、どの階層にあるどんな名前のenvファイルも、一網打尽にコピーされるようになりました。
image.png

解説:設定したGlobパターン **/{.env,*.env} の意味

この拡張機能は fast-glob という仕組みを使っているため、以下の記述が有効です。

記述 意味 効果
**/ 再帰検索 ルートだけでなく backend/docker/ など、あらゆる階層のサブディレクトリも探してくれます。
{} ブレース展開 複数の条件を1行にまとめます。
.env, *.env 条件指定 .env (完全一致)」と「xxx.env (拡張子)」の両方をカバーします。

これらを組み合わせることで、「どこにある、どんな名前の .env でも全てコピー対象にする」という命令になります。

応用:settings.jsonなども同様にコピー可能

この方法は .env に限らず、Git管理外にしているローカル設定ファイル全般に使えます。

例えば、自分用の settings.jsonlocal_config.yaml などをWorktreeごとにコピーしたい場合も、同じ要領で追加すればOKです。

# 例:あらゆる階層の settings.json もコピー対象にする
**/settings.json
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?