Git checkout twig remota de un repository remoto

Cuando git clona un repository, recupera todas las twigs de él:

git clone https://github.com/android/platform_build.git build1 cd build1/ && git branch -a && cd .. 

luego, cuando uso build1 como mirror y lo clono, no veo todas sus sucursales remotas (veo solo la twig principal local de build1 )

 git clone build1 build2 cd build2 && git branch -a && cd .. 

¿Cómo puedo solicitar el control remoto de sucursales remotas?

Sé que puedo verificar todas las sucursales remotas en build1 mirror con el command

 cd build1 && for remote in `git branch -r `; do git branch --track $remote; done 

Rastree todas las twigs remotas de git como sucursales locales, pero ¿qué ocurre si no tengo acceso al directory build1?

Además, existe un git ls-remote origin que muestra todos los refs remotos, pero ¿hay alguna forma elegante de verificar esos remotos de sucursales remotas?

Después de clonar build1 a build2 , build1 es el origin build2 , y build2 no sabe nada sobre https://github.com/android/platform_build.git , que es donde viven las twigs "remotas". Una solución puede ser agregar https://github.com/android/platform_build.git como un control remoto en la configuration de build2 . Para agregar un control remoto llamado github :

 git remote add github https://github.com/android/platform_build.git 

Luego ejecute una fetch para get las twigs remotas:

 git fetch github 

Ahora, cuando ejecute git branch -a , debería ver las twigs con prefijos remotes/github/ que correspondan con los prefijados con remotes/origin en build1 .

Por otro lado, build2 debería tener una sucursal remota para cada sucursal local en build1 , incluidas aquellas que están rastreando sucursales remotas desde la perspectiva de build1 . Por ejemplo, si hay una twig llamada foo en github, se mostrará como remotes/origin/foo en build1 . Si configura una sucursal local para rastrear esa sucursal remota en build1 también llamada foo , entonces build2 debería tener un remotes/origin/foo . Luego, cuando foo se actualiza en build1 / fusionando los cambios del foo de github, esos cambios deberían aparecer en build2 después de un fetch / pull .