テクニカル雑記帳です
switchしたbranchのsubmoduleをセットアップする
- リポジトリ内で、
git submodule init
を実行し、必要なsubmoduleを初期化する。これで、.gitmodules
ファイル内のすべてのsubmoduleが初期化される。 git submodule update
を実行し、各submoduleの内容を取得する。これで、submoduleの指定されたコミットがチェックアウトする。
git switch <branch-name>
git submodule update --init
git submodule update --init
が使える。これはgit submodule init
とgit submodule update
を組み合わせたものだ。
- すでにサブディレクトリが存在し、それが空でない場合、次のようなエラーが表示されることがある。
> git switch <branch-name>
warning: unable to rmdir 'themes/hoge: Directory not empty
branch '<branch-name>' set up to track 'origin/<branch-name>'.
Switched to a new branch '<branch-name>'
この問題を解決するには、themes/hoge
ディレクトリを手動で削除するか、内容を別の場所に移動する必要がある。
# ディレクトリを移動または削除する
mv themes/hugo-book /path/to/new/location/
# または
rm -rf themes/hugo-book
上記の問題が解決したら、サブモジュールを初期化し、アップデートする。
git submodule update --init
これで完了です。