git submodule を使ってみる

August 19, 2022

確認環境

$ 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 リポジトリを修正する時に関係ないリポジトリも、気にしなければいけなくなります。


SHARE

Profile picture

Written by tamesuu