Git Submodule

git submoduleとは

git submoduleは、外部のgit リポジトリを自分のgitリポジトリのサブディレクトリとして登録し、その特定のcommitを参照する仕組み。

使用方法

外部リポジトリをサブモジュールとして取り込む

リポジトリAのsubディレクトリに外部リポジトリBを取り込む場合

git submodule add https://github.com/example/B.git sub/B

これで、subディレクトリ内にBというディレクトリが追加される。この時点でBの中身は空である。

また、Aのディレクトリ直下に.gitmodules というファイルが追加される。このファイル内で参照先のリポジトリと手元のファイルパスの対応づけを記録している。

Bリポジトリの実体を取り込むには以下のコマンドを実行する。

git submodule update --init

initしたサブモジュールの実体を削除する

以下のコマンドで、プロジェクト内に取り込んだサブモジュールの実体を削除できる。サブモジュールの参照情報を含んだファイルは削除されない(initする前の状態となる)。

git submodule deinit sub/B

参考

Git submodule の基礎 https://qiita.com/sotarok/items/0d525e568a6088f6f6bb