worktree作業フォルダの移動や改名
git worktree
で作業フォルダを作成している人に向けての記事です。
正しい方法
git worktree add
で作成した作業フォルダを移動や改名したい場合
git worktree move old-folder new-folder
とすることで、安全確実に移動・改名できます。
そうはいっても
作業フォルダが入ったドライブの交換や増設、OSの入れ替え等で、
-
git clone
で作成した作業フォルダ を移動や改名した -
git worktree
で作成した作業フォルダを(gitコマンドを介さずに)移動や改名した
このようなケースでは git worktree move
コマンドで処置することができず、結果としてworktree作成作業フォルダへの関連付けが失われてしまいます。
なぜなら、clone作成作業フォルダ直下の.gitフォルダ内のgitdirファイルと、worktree作成作業フォルダ直下の.gitファイルが、下記のように相互にパス名を保持して関連付けしているからです。
clone作成作業フォルダ/.git/worktrees/worktree名/gitdir
worktree作成作業フォルダのフルパス
worktree作成作業フォルダ/.git
gitdir: clone作成作業フォルダのフルパス/.git/worktree/<worktree名>
関連付けを修復するには
上記の相互参照を手作業で修正しても修復できるようですが、
以下のコマンドを実行することで、より安全に修復できます。
cd <移動改名後のclone作成作業フォルダ>
git worktree repair <移動改名後のworktree作成作業フォルダのフルパス>
git公式ドキュメント