2017年03月29日(水) [長年日記]
■ [howto][dev] submoduleを含むGitリポジトリのclone
Gitのサブモジュールの扱い方を覚えられないのでメモ。Gitのバージョンは 1.8.3.1。
git clone後にサブモジュールの内容を取得する
サブモジュールを含んでいるGitリポジトリを手元にコピーすることを考える。普通にgit cloneを実行するだけだとサブモジュールの中身は空。サブモジュールの中身をダウンロードするには
% git submodule update --init --recursive
を実行するのがよさそう。--initは「git submodule init」を兼ねるためのオプション、--recursiveはサブモジュールがネスとしているケースにも対応するためのオプション。
git clone時にサブモジュールの内容を取得する
git cloneと同時にサブモジュールの内容を取得することもできて、そのためにはgit cloneに--recurse-submodulesオプションを追加する。
% git clone --recurse-submodules <repogitory>
最新のサブモジュールの内容を取得する
上記で取得できるサブモジュールの内容は、clone元のリポジトリに記録されているバージョンになる。サブモジュールの最新版を取得する方法は以前メモしているのだけれど、foreachとか使わなくても
% git submodule update --remote
でできそう。今知ったことなのでよくわかってないけど。