Submodule のコミットチェックアウト先を現在管理している位置に戻す

以下の手順でできます。

  1. 管理しているサブモジュールのコミットハッシュを取得
  2. サブモジュールの中でそのコミットハッシュにgit reset --hard
  3. サブモジュールを更新する
# 管理しているサブモジュールのコミットハッシュを取得
git submodule status
# +561f1760b97ad7e0743e9d300828b18842b65d83 ...

sh -c 'cd <submodule-name> && git reset --hard 561f1760b97ad7e0743e9d300828b18842b65d83'

# ブモジュールを更新
git submodule update
# Submodule path '<submodule-name>': checked out '9c949cf0bd3e326f30ac3147247e21cd0ad29517'