git submodule
でいろいろはまってコミット汚したのでメモって覚えるよ!!
clone 後
git submodule update --init
git submodule update --init
は git submodule init
と git submodule update
の合わせ技。git の submodule の初期化及び submodule の clone を行う。git clone だけではローカルに反映されないので、このコマンドを実行してまず .git
に submodule 情報を初期化し、そして実際のファイルとして反映させる。
最新コミットにしたい
git submodule foreach git pull origin master
submodule に foreach でコマンド実行をするという感じ。これなら origin master から pull してきますよってこと。
submodule の追加
git submodule add ... [dir]
dir は optional。https じゃないと GitHub 上でリンクとして貼られないので、SSH ではなく https を使いましょう。
最後に
submodule はシンボリックリンクみたいな扱いで使うので、いわゆる submodule 1 つはローカルではディレクトリーとして見えてるわけだけど、実際リポジトリーで扱う分にはファイルとして扱うと考えたほうがわかりやすいと思う。
これだけコマンド扱えればもう十分 submodule について使いこなせることになるのでいいと思います。ただ、Visual Studio の git client はこれに対応してないっぽいので、submodule の更新を含むコミットをするときには注意。
以上。