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の削除方法

  1. .gitmodules
    ファイルから該当エントリを削除
  2. .git/config
    から該当サブモジュールの設定を削除
  3. サブモジュールのディレクトリを手動削除
  4. 以下のコマンドでインデックスから削除
git rm --cached external/lib-example

submoduleに関する注意点

  • 親リポジトリとサブモジュールは完全に独立したGitリポジトリ
  • サブモジュール側での変更は、親リポジトリでは自動的に反映されない(手動更新が必要)
  • .gitmodules
    やサブモジュールのcommit IDも一緒にコミット・管理する必要がある

まとめ:submoduleを使いこなしてコード管理を最適化

Git submoduleを利用すれば、複数のプロジェクトやライブラリを一元管理しつつ、それぞれの独立性も保つことができます。正しく設定・運用することで、コードの再利用やチームでの役割分担がより効率的に行えるようになります。

編集部

編集部

Git submoduleの設定と使い方を完全解説【複数リポジトリ管理】