Git submoduleの設定と使い方を完全解説【複数リポジトリ管理】
Git submodule(サブモジュール)の基本概念から追加・更新・削除の方法までを初心者向けに解説。複数のリポジトリを効率的に管理したいときに役立つGitの高機能をマスターしましょう。
Git submodule(サブモジュール)とは?
Git submoduleは、あるリポジトリの中に別のGitリポジトリを含めて管理できる仕組みです。これにより、共通ライブラリや別プロジェクトを1つのリポジトリ構成で扱えるようになります。
よくある活用例
- 共通のUIコンポーネントなどを複数プロジェクトで使いまわす
- プロジェクトの中にライブラリを外部管理したい
- 特定のバージョンで固定したい外部モジュールを含める
submoduleの追加方法
git submodule add [リポジトリURL] [ディレクトリ名]
例:GitHub上のライブラリを追加
git submodule add https://github.com/example/lib-example external/lib-example
このコマンドにより、指定ディレクトリにライブラリの内容がcloneされ、
.gitmodules
という設定ファイルが自動生成されます。
submoduleの初期化と更新
clone直後に必要な操作(初期化と取得)
git submodule init
git submodule update
または一括で実行:
git submodule update --init --recursive
submoduleの最新版を取得(更新)
cd external/lib-example git pull origin main
もしくは親リポジトリから一括で:
git submodule update --remote
submoduleの削除方法
ファイルから該当エントリを削除.gitmodules
から該当サブモジュールの設定を削除.git/config
- サブモジュールのディレクトリを手動削除
- 以下のコマンドでインデックスから削除
git rm --cached external/lib-example
submoduleに関する注意点
- 親リポジトリとサブモジュールは完全に独立したGitリポジトリ
- サブモジュール側での変更は、親リポジトリでは自動的に反映されない(手動更新が必要)
やサブモジュールのcommit IDも一緒にコミット・管理する必要がある.gitmodules
まとめ:submoduleを使いこなしてコード管理を最適化
Git submoduleを利用すれば、複数のプロジェクトやライブラリを一元管理しつつ、それぞれの独立性も保つことができます。正しく設定・運用することで、コードの再利用やチームでの役割分担がより効率的に行えるようになります。

編集部