Como obter clone (rastrear e buscar) todos os branches remotos

O script a seguir fará um loop para todos os branches remotos, criará um com o mesmo nome localmente, rastreará até o remoto e buscará / puxará todos eles.

#!/bin/bash
for remote in `git branch -r`; do git branch --track ${remote#origin/} $remote; done
git fetch
--all
git pull
--all