モノトーンの伝説日記

Apex Legends, Splatoon, Programming, and so on...

<mini> git submodule 自分的まとめ

 git submodule でいろいろはまってコミット汚したのでメモって覚えるよ!!

clone 後

git submodule update --init

git submodule update --initgit submodule initgit 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 の更新を含むコミットをするときには注意。

 以上。