git checkout でブランチを切り替えるとき、ほとんどの場合、サブモジュールを更新したいと思うでしょう。
- 切り替え後にサブモジュールを更新したくないのはどのような状況ですか?
- これが git checkout によって自動的に行われた場合、何が壊れますか?
例で更新:
- ブランチ A には 3852f1 にサブモジュール S があります
- ブランチ B には fd72d7 にサブモジュール S があります
ブランチ A で git checkout B を実行すると、サブモジュール S が 3852f1 (変更された S) にあるブランチ B の作業コピーが作成されます。git submodule update は fd72d7 で S をチェックアウトします。