Bag of ML Words

ML = Machine Learning, Music Love, and Miscellaneous things in daily Livings

git submoduleの自分用メモ書き

git submoduleはほかのレポジトリの「特定コミット」を自分の内部の構成要素にする仕組みで、大きいものを作るときや、各要素が複雑enoughな時に役立つっぽい。

 

基本の理解

 

  • submodule内のレポと本体のレポは別物
  • 本体としてはsubmoduleのコミット番号のみを記憶している
  • submoduleを直接修正pushしてらsubmoduleのレポだけが更新されるが、本体は何の更新も見えない
  • submodule更新してから、submoduleのディレクトリの外でgit submodule updateすると、本体レポの記憶しているコミット番号が更新される

 

これ良かったね 

Git submodule の基礎 - Qiita

 

基本コマンド

git submodule update --recursive

これでトラックするsubmoduleのコミット状況を更新かな?

 

 

git submodule foreach git pull origin master

foreachコマンドはその名の通り、同じ処理を繰り返し順番にやってくれる。

これでやれるのは各submoduleにおいてpull origin masterをするってこと

 

git pull origin [specific-commit identifier]

各submoduleのディレクトリにおりて、そこで上記の通常pullを行うと、そのsubmoduleについては特定のコミットを落としてくることができる。