Tratando de darle sentido a la búsqueda de git

Supongamos que el repository en $REPO_URL tiene múltiples twigs, incluyendo una llamada dev . Ahora, supongamos que ejecuto los siguientes commands, uno justo después del otro

 % git clone $REPO_URL --branch dev wd % cd wd % git branch -a * dev remotes/origin/HEAD -> origin/master remotes/origin/dev remotes/origin/issue6 remotes/origin/issue26 remotes/origin/issue30 ... remotes/origin/issue709 remotes/origin/issue712 remotes/origin/issue716 remotes/origin/master 

¿Qué debo hacer en este punto para que, para cada twig del formulario remotes/origin/X haya una twig local X que coincida exactamente? Con esto quiero decir que los siguientes dos commands producirían un resultado idéntico:

 % git rev-parse remotes/origin/X % git rev-parse X 

y también que la salida de git branch -a terminaría luciendo así:

 * dev issue6 issue26 issue30 ... issue709 issue712 issue716 master remotes/origin/HEAD -> origin/master remotes/origin/dev remotes/origin/issue6 remotes/origin/issue26 remotes/origin/issue30 ... remotes/origin/issue709 remotes/origin/issue712 remotes/origin/issue716 remotes/origin/master 

No necesita fetch esto, porque ya lo hizo cuando clonó el repository. Lo que desea es una sucursal local para que coincida con cada sucursal de seguimiento remoto, y para esto puede usar el checkout :

 git checkout -b issue6 origin/issue6 

Por lo tanto, puede tener un script que recorra todas las sucursales remotas y las verifique.

Como se menciona en los comentarios, las versiones recientes de git pueden usar un command más simple:

 git checkout issue6 

Un shell for loop lo hará:

 for BRANCH in $(git branch -r | grep -v HEAD) # list of remote branches (excluding HEAD) do git checkout --track ${BRANCH} done