はじめに
gitのsubmoduleを使う機会があったのですが、間違えて追加して再追加するときに、いろいろ戸惑ったので、まとめました。
submoduleの追加
$ git submodule add サブモジュール化したいリポジトリ パス/名前指定
submoduleの追加は上記のコマンドで行えます。
パス/名前指定を空白にすると、現在のディレクトリにリポジトリ名のままで作成されます。
submoduleの削除
$ git submodule deinit -f 追加したサブモジュール
$ git rm -f 追加したサブモジュール
$ rm -rf .git/modules/追加したサブモジュール
submoduleの削除は上記のコマンドで行えます。
忘れがちなのが、.git/modules/追加したサブモジュール
ですね。これを消し忘れると、ローカルに存在すると言われ再追加ができなくなります。
submoduleの再追加
$ git submodule add サブモジュール化したいリポジトリ パス/名前指定
再追加はsubmoduleの追加と同じコマンドです。
これがうまくいかない場合正しく削除できていないので、確認しなおしましょう。
まとめ
再追加できないときは、.git/modules/追加したサブモジュール
の消し忘れの可能性があります。
vscodeではここの差分がでないので注意です。