確認環境
$ git --version
git version 2.34.1
どういう時に使うか
メインのリポジトリに別のリポジトリを取り込む時に使います。
前提
- 既にメインのリポジトリが存在している
- Hugo のチュートリアルでは、theme のインストールに git submodule を使っていたので、例にします。
submodule を追加する
$ git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
submodule の確認
$ git submodule
470ea40982f5036554819253c3ac6ed4a34193f4 themes/ananke (v2.5.6-108-g470ea40)
ちなみにこのファイルに情報があります。
.gitmodules
[submodule "themes/ananke"]
path = themes/ananke
url = https://github.com/theNewDynamic/gohugo-theme-ananke.git
submodule の更新
例えば、submodule として追加したリポジトリに hoge
ブランチがあるとします。
$ cd themes/ananke
$ git fetch origin hoge
$ git checkout hoge
$ cd ../
$ git commit -am "update submodule"
おわりに
仮に submodule も自分で管理するリポジトリの場合、
submodule リポジトリ -> メインのリポジトリ の依存は避ける必要があります。
そうしないと、submodule リポジトリを修正する時に関係ないリポジトリも、気にしなければいけなくなります。