ユーザー定義のスクリプトを実行して、サブモジュールを更新する
ユーザー定義のスクリプトを実行して、「サブモジュール」を更新します。この方法を利用すると、ユーザー独自の「サブモジュール」の更新方法を利用できます。
補足
チェックアウトされていない「サブモジュール」に対し、ユーザー定義のスクリプトを実行してサブモジュールを更新しようとすると、サブモジュールのチェックアウトが実行されます。事前にサブモジュールのチェックアウトを行っておきましょう。
ユーザー定義のスクリプトの実行するには
ユーザー定義のスクリプトを実行するには、以下の点に留意が必要です。1.実行するユーザー定義のスクリプトの指定
実行するユーザー定義のスクリプトを、設定ファイルに記述しておく必要があります。ここでは例として、リポジトリーの設定ファイルである「config」ファイルに、実行するスクリプトを記述しました。
実行するスクリプトの記述は、「submodule.モジュール名.update」設定に記述します。
また、必ず設定値の頭に、「!」を記述してください。
ここでは例として、以下のように記述しました。
2.実行するスクリプトの用意
実行するスクリプトを用意します。すでに存在するコマンドやスクリプトを実行する場合、自分でスクリプトを用意する必要はありません。
スクリプトの中身は、以下のように記述しました。
#!/bin/bash echo "commit ID : $1" echo "Current directory : `pwd`"
このスクリプトは、「コミットID」とスクリプト実行時のカレントディレクトリーを出力します。
3.コミットIDがスクリプトの引数に指定される
スクリプト実行時、「コミットID」がスクリプトの引数に指定されます。4.更新方法のオプションを指定しない
コマンドに更新方法のオプションを指定しないでください。「1.」の作業行い、更新方法のオプションを指定しなかった場合に、スクリプトが実行されます。
コマンドの実行例
コマンドの実行例です。1.サブモジュールの状態
「サブモジュール」の状態を見てみます。以下のように、「mySubProject」サブモジュールが配置されており、「mySubProject」サブモジュールの「HEAD」は「master」ブランチを指しています。
2.コミットIDの確認
「mySubProject」サブモジュールの「コミットID」は、以下のようになっています。3.コマンドの実行
「端末」から、以下のコマンドを実行します。 コマンドの詳細は、「サブモジュールを更新するコマンドの説明」を参考にしてください。
git submodule update
4.コマンドの実行結果
以下のように、スクリプトが実行されます。最終行に出力されている「Submodule path 'mySubProject'・・・」は、gitコマンド側で出力しているメッセージです。
このメッセージには、「サブモジュール」の「ワーキングディレクトリー」のパスや、実行したスクリプト及び、「コミットID」が出力されます。