gitのsubmoduleの場所を変更する
git submodule add
でサブモジュールを追加したあと、そのサブモジュールを配置するディレクトリーを変更したくなった場合、つまり例えば、git submodule add https://github.com/AlissaSabre/disfr.git
などとして追加したサブモジュールがあり、この結果できているdisfr
というディレクトリーをexternal/disfr
に変更したくなった場合は、単にmkdir external; git mv disfr external/disfr
とすればOK。(当たり前だが、modified: .gitmodules
、renamed: external/disfr
になるので、コミットする。)
これとは別のgitのややこしいケースの情報を探していたところ、サブモジュールの場所を変更するには…のように題し、.gitmodules
やら.git/modules/disfr/config
やらたくさんのファイルを手で編集する方法を熱心に説明しているページが複数あったので、一応メモしておく。
(なお、サブモジュールなので、git mv
で変更をする前のブランチをチェックアウトすると変なことになるが、git submodule update
しただけでは完全に元に戻らない。また、それを元に戻した後でこちらのブランチに戻るとまたおかしくなる。この点は、移動方法の問題ではなくて、サブモジュールそのものの問題のはずなので、.gitmodules
等を手で変更しても同じだと思う。試してないけど。)
« セキュアブートとBitLockerでハマりかかった話 | トップページ | equal »
コメント