submoduleはざっくりいうと「他のgitプロジェクトを作業中のgitプロジェクトでも使えるようにする技」という事になります。
直接引っ張ってくるより、先方のアップデートに合わせて更新したり、逆に更新に付き合わなかったりという事ができます。
実際のところ
HUGOでテンプレートエンジンを展開する際、以下のようなコマンドをうつよう指示があります
$ git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke themes/ananke
引っ張ってくるとき
何も考えずに引っ張ってくるとsubmoduleで導入したディレクトリには何も入っていません。
".gitmodule"は残っているので、これを頼りに自前で引っ張ってくる必要があります
$ git submodule init $ git submodule update