What are the conceptual differences between using git submodule and subtree?
What are the typical scenarios for each?
What if I want the links to always point to the HEAD of the external repo?
You can make a submodule to follow the HEAD of a branch of a submodule remote repo, with:
git submodule add -b <branch> <repository> [<path>]. (to specify a branch to follow)
git submodule update --remote which will update the content of the submodule to the latest HEAD from
<repository>/<branch>, by default
origin/master. Your main project will still track the hashes of the HEAD of the submodule even if
--remote is used though.