Gitでよく使うコマンドは2部構成です。
- Gitでよく使うコマンド一覧
- Git Submodulesでよく使うコマンド一覧 ←イマココ
はじめに
Git Submodulesがよくわからなかったので、よく使うコマンドを調べてまとめました。
環境
- Git:2.45.1
Git Submodulesでよく使うコマンド一覧
git submodule
コマンド | 説明 |
---|---|
git submodule update --init --recursive |
サブモジュールをクローンする |
git submodule update --remote |
全サブモジュールの変更を取り込む |
git submodule update --remote {サブモジュールのパス} |
対象サブモジュールの変更を取り込む |
Git Submodulesでよく使うテクニック
クローン時にサブモジュールもクローンする
git clone --recursive {リポジトリのURL}
でサブモジュールを含むリポジトリをクローンできます。
--recursive
を付けないとサブモジュールがクローンされないので注意です。
$ git clone --recursive {リポジトリのURL}
サブモジュールをクローンし忘れたリポジトリを再クローンせずに対応する
--recursive
を付け忘れてクローンすることはまれによくあります。
その場合は以下のコマンドを実行することで、ローカルからリポジトリを削除して再クローンしなくても済みます。
$ git submodule update --init --recursive
サブモジュールの変更を取り込む
サブモジュールのフォルダまで移動し、 git fetch
→ git rebase origin/main
を実行することで、サブモジュールの変更を取り込めます。
要は通常のリポジトリを扱うときと同様です。
$ cd foo/
$ git switch main
$ git fetch
$ git rebase origin/main
ちなみに上記の作業は git submodule update --remote {サブモジュールのパス}
を実行すれば一発で完結します。
$ git submodule update --remote foo/
あとはメインモジュールのフォルダへ戻り、 git add
→ git commit
します。
$ cd -
$ git add foo
$ git commit
これでサブモジュールの変更を取り込めました。
おわりに
私はGit Submodulesにおいて最低限の操作しか行いません。
他にもよく使うコマンドやテクニックがあれば教えていただけると嬉しいです