gitのsubmoduleだけを最新版にしたい場合のコマンドメモ

以前からvimの各プラグインを、ここらへんを参考にgit submoduleで管理していたのだけど、git submodule updateしても各プラグインが最新版になってなかったのに気がついた…というより最新版になるものだとすっかり勘違いしていた…という恥書きメモ

今回起こった現象

・gitで管理しているvimの環境では、定期的にgit submodule updateしてるからsubmoduleで管理している各種プラグインも最新版になってるはず
 ↓
・とあるプラグインで、数カ月前に解決されているバグ修正が反映されてない…だ..と( ゚д゚ )
 ↓
・つか、各モジュールが全然更新されてないやん ← イマココ

git submodule updateの動作

どうやらgit submodule updateで持ってこれるのは、親プロジェクト(ここでは.vimrc他の管理プロジェクト)が指定したコミットということみたいで、各submoduleを最新版にするわけではないのよん(`・ω・´)ってことみたいです。

http://progit.org/book/ja/ch6-6.html

まあ、本来は自分の開発物の管理に利用して、親モジュールとサブモジュール間の依存関係を壊さないための仕組みっぽい(と勝手に思っております)ので、当然っちゃー、当然なんでしょうね(´・ω・`)

gitでsubmodule管理しているのを最新にするには次のコマンドを実行

んで、これを何とかしたいと思って探し回ったら、中途ハンパに翻訳されて非常に読みづらいと定評のw3supportで解決策が…

git submoduleに強引にpullコマンドを渡してやります(`・ω・´)

# これで動作するのか...(´・ω・`)
git submodule foreach git pull origin master

参考:http://ja.w3support.net/index.php?db=so&id=1030169

とりあえず解決なのか?

うん、とりあえず手元の環境では、無事submoduleドモが最新版になったのです。ただ、正直w3supportで解決してしまったのがほんのり悔しいのはなぜだろう?

まあ…オフィシャルドキュメントを読み落としてるだけの可能性もあるので、もっといい方法があれば誰か教えてくださいm(__)m