Submoduleの使い方#

GitSubmoduleとは#

Gitリポジトリ内に別のGitリポジトリをサブモジュールとして入れることができる機能。
例えば、あるプロジェクト内で他のプロジェクトを依存関係として管理する場合などに使用。
他のリポジトリで管理しているライブラリをプロジェクトのリポジトリ内で使用したいなど

Submoduleの追加方法#

submoduleコマンドと追加したいリポジトリのURLで追加 submoduleはコミットのハッシュ値で管理されるため,変更履歴としてハッシュ値の変更が残る そのため,ハッシュ値を追加したということをコミットする必要がある

$ git submodule add <URL(git@github.com:user/repo.git)>
$ git add .
$ git commit -m "feat: add repo as submodule"

Submoduleの更新方法#

submoduleのリポジトリ側で更新があった場合,updateコマンドで更新する必要がある

$ git submodule update --remote

Submoduleの編集#

submoduleのリポジトリを編集するとき,リポジトリのフォルダ内を編集する コミットするときは,submoduleのリポジトリ内で行う必要がある 更新後は,大元のリポジトリでsubmoduleの更新が必要

# subAというsubmoduleがあったとき
$ cd subA
$ git commit -am "feat: xxx"
$ git push
$ cd ../
$ git submodule update --remote