Q:

What are the submodule and checkout commands of git for?

I hope my question is not out off topic.
I am trying to install OpenBR on my laptop (Ubuntu 14.04). Following the instructions, I found these 3 command lines:
git checkout <tag>
git submodule init
git submodule update

I wonder if someone could explain me what is their meaning ?
Thank you in advance for help.

A:

I found the solution by myself :)
git submodule (update and init)

Submodules allow foreign repositories to be embedded within a
  dedicated subdirectory of the source tree, always pointed at a
  particular commit.
They are not to be confused with remotes, which are meant mainly for
  branches of the same project; submodules are meant for different
  projects you would like to make part of your source tree, while the
  history of the two projects still stays completely independent and you
  cannot modify the contents of the submodule from within the main
  project

git checkout 

Updates files in the working tree to match the version in the index or
  the specified tree. If no paths are given, git checkout will also
  update HEAD to set the specified branch as the current branch.

