Help us understand the problem. What is going on with this article?

[git] submoduleの削除、再追加について

はじめに

gitのsubmoduleを使う機会があったのですが、間違えて追加して再追加するときに、いろいろ戸惑ったので、まとめました。

submoduleの追加

$ git submodule add サブモジュール化したいリポジトリ パス/名前指定

submoduleの追加は上記のコマンドで行えます。
パス/名前指定を空白にすると、現在のディレクトリにリポジトリ名のままで作成されます。

submoduleの削除

$ git submodule deinit -f 追加したサブモジュール
$ git rm -f client 追加したサブモジュール
$ rm -rf .git/modules/追加したサブモジュール 

submoduleの削除は上記のコマンドで行えます。
忘れがちなのが、.git/modules/追加したサブモジュールですね。これを消し忘れると、ローカルに存在すると言われ再追加ができなくなります。

submoduleの再追加

$ git submodule add サブモジュール化したいリポジトリ パス/名前指定

再追加はsubmoduleの追加と同じコマンドです。
これがうまくいかない場合正しく削除できていないので、確認しなおしましょう。

まとめ

再追加できないときは、.git/modules/追加したサブモジュールの消し忘れの可能性があります。
vscodeではここの差分がでないので注意です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away