git submodule がちょっとややこしいのでメモ。 間違いなどあればご指摘いただけると重畳です。 submodule の追加 git submodule は、現在のリポジトリのクローン中に、別のリポジトリの特定のコミットを、サブディレクトリとして参照する。svn でいうところの externals にあたる。 たとえば独立にバージョン管理されているコアライブラリと、それをリンクするアプリケーションのプロジェクトがある場合、プロジェクトに取り込みつつも管理を別々にすることで、使用するライブラリのリリースバージョンを明確にしたり、lib をカスタマイズしてもその後のアップデートに簡単に追従したりできる。 「特定のコミットを参照」といっても、サブモジュールも結局リポジトリのクローンなので、こいつもコミットグラフを持っている。 サブモジュールの追加は、 git submodule add
![git submodule | Drowsy Dog's Diary](https://cdn-ak-scissors.b.st-hatena.com/image/square/f5178a5f2b26c64f4a19607cabb1e046840bbafb/height=288;version=1;width=512/http%3A%2F%2Fka-zoo.net%2Fwp-content%2Fuploads%2F2013%2F04%2FGitSubmoduleUpdate.png)