私はgitサブモジュールが同期していないとき、つまり、チェックアウトされたバージョンがツリーに記録されたバージョンと同じでないときは、自動的にビルドシステムの一部としてgitサブモジュールを更新します。自動更新サブモジュール
は現在、私はgit submodule status ‹path›
を行い、その結果の出力の最初の文字が(同期して)、スペースまたは何か他のもの(初期化されていないため-
、+
同期外れのコミット、またはマージの競合のためU
)があるかどうかを確認してください。
この情報を取得するには(実行時間の点で)いくらか安価なコマンドがありますか?サブモジュールが更新を必要としているかどうかを判断するために、2つの適切に選択されたファイルのタイムスタンプを比較することはできますか?
オプション '--cached'が役立ちます。 – Gregg
@Greggあなたは本当ですか?ガット用語では、「キャッシュ」はステージング領域を参照する傾向があります。だから私は '--cached'フラグを" HEADと実際の状態を比較するのではなく、段階的な変更をしないでください "と読んでいます。落ちる前にステージング領域をチェックする必要があるのでHEADを比較することに戻る。 – MvG
ファイルがインデックスにあるとき、既知のgitのハッシュは最新のハッシュだけをチェックするだけです(ハッシュのみ)。私はこれが単なるコメントであるかどうかわかりません。 – Gregg