Gitリポジトリ内で別のリポジトリを管理する

概要

Gitリポジトリで管理しているディレクトリの中で、別のリポジトリを取り込んで管理したい場合があった。親のリポジトリをcloneした後に、各リポジトリをcloneするのは面倒なので、何か一発で必要なリポジトリを取得できる機能がないか調べてみた。

すると、git submoduleという機能を見つけたので使ってみた。

サブモジュールを親のリポジトリ内に追加する

以下のコマンドを実行する。

1
git submodule add [リポジトリ名] [リポジトリを追加したいディレクトリパス]

【重要】git submoduleの注意点

git submoduleでややこしいところは、親のリポジトリとサブモジュールは連動しないということである。

こちらの記事がわかりやすかったです。感謝します。

clone後にサブモジュールを取得する

1
2
3
git clone parent-repository
git submodule init
git submodule update

【未検証】サブモジュールをすべて最新版に更新する

1
git submodule foreach git pull origin master

参考ページ

Git submodule の基礎