サブモジュール
サブモジュールはレポジトリ内に Git 管理している別のリポジトリをサブディレクトリとして含めることができる機能です.ライブラリや自分が開発している他のプロジェクトの内容を使いたい場合にメインのプロジェクトとは別で管理しながらプロジェクト内に組み込むことができます.
サブモジュールの追加
サブモジュールを追加するには次のコマンドを使用します.
git submodule add
サブモジュールとして追加したリポジトリの情報は .gitmodules に記述されます.
サブモジュールを含んだリポジトリのクローン
サブモジュールを含んだリポジトリを通常のリポジトリと同様に clone すると,サブモジュールのディレクトリは空の状態になります.サブモジュールも一緒にクローンしたい場合は次のように --recursive
オプションを使います.
git clone --recursive git@github.com:user/repo.git
すでに git clone
していてサブモジュールの中身をクローンしたい場合は次のコマンドを実行します.
git submodule init
git submodule update
サブモジュールのアップデート
サブモジュールのアップデートを適用する1つ目の方法はサブモジュールのディレクトリに移動して fetch,merge する方法です.
cd submod
git fetch
git merge
2つ目は次のように update を使用する方法です.
git submodule update --remote
Local のサブモジュールを更新した場合はサブモジュールのディレクトリに移動してコミット,プッシュします.
サブモジュールの削除
サブモジュールを削除したい場合はまず deinit を実行します.
git submodule deinit submoddir
次に下記のコマンドで git からサブディレクトリを取り除きます.
git rm --cached submoddir
最後にコミットして変更を反映させます.
git commit