Force Git submodules to always stay current

As I mention in “git submodule tracking latest”, you can since git 1.8.2 (March 2013) make a submodule track the HEAD of branch:

git submodule add -b <branch> <repository> [<path>]

A submodule SHA1 is still recorded in the parent repo as a gitlink (special entry in the index)

But a git submodule update --remote will update that entry to the SHA1 matching the HEAD of a branch of the submodule remote repo.

If you have an existing submodule, you can make it follow a branch with:

cd /path/to/your/parent/repo
git config -f .gitmodules submodule.<path>.branch <branch>

cd path/to/your/submodule
git checkout -b <branch> --track origin/<branch>
  # if the master branch already exist:
  git branch -u origin/<branch> <branch>

cd /path/to/your/parent/repo
git add path/to/your/submodule
git commit -m "Make submodule tracking <branch>"

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)