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 »


コメント