Gitリポジトリ内のサブモジュールを一覧表示する 質問する

Gitリポジトリ内のサブモジュールを一覧表示する 質問する

git submodule initいくつかのサブモジュールを含む Git リポジトリがあります。を実行した後に、すべてのサブモジュールの名前を一覧表示するにはどうすればよいでしょうか?

このgit submodule foreachコマンドはサブモジュールの名前をエコーできますが、これはサブモジュールがチェックアウトされた後にのみ機能し、init ステップの後にはまだチェックアウトされていません。チェックアウトする前に実行する必要があるチェーン内のステップがさらにあり、サブモジュールの名前をスクリプトにハードワイヤードする必要はありません。

では、現在登録されているがまだチェックアウトされていないすべてのサブモジュールの名前を取得する Git コマンドはありますか?

ベストアンサー1

自体を使用するのと同じメカニズムgit submodule init、つまり を参照することができます.gitmodules。このファイルは、各サブモジュール パスとそれが参照する URL を列挙します。

たとえば、リポジトリのルートから、cat .gitmodules内容を画面に出力します ( があると仮定しますcat)。

.gitmodule ファイルには Git 構成形式があるため、git config を使用してこれらのファイルを解析できます。

git config --file .gitmodules --name-only --get-regexp path

すべてのサブモジュールエントリが表示され、

git config --file .gitmodules --get-regexp path | awk '{ print $2 }'

サブモジュールパス自体のみが取得されます。

おすすめ記事