En el uso cotidiano de git, el manejo y cambio de ramas en local no suele ser un problema. branch y checkout son comando habituales con los que trabajar. Sin embargo, el problema viene cuando quieres contribuir o hacer algún tipo de desarrollo colaborativo contra un repositorio que no conoces. En este caso, tras hacer el clone correspondiente, únicamente tienes, por ejemplo la rama master. Si empleas github o algún interfaz de gestión de repositorios, entonces averiguar el nombre de todas las ramas que tiene el proyecto es más sencillo. Sin embargo, hacerlo desde consola ya no tanto.
Listado de ramas
Si lo que nos interesa es averiguar aquellas ramas que están disponibles para un proyecto, con el comando git también lo podemos lograr. La forma más sencilla,
shell> git branch -r origin/test origin/prueba origin/HEAD origin/master
Y si nos interesa tener un listado completo de las ramas remotas y locales,
shell> git branch -a * master origin/test origin/prueba origin/HEAD origin/master
Rápido, limpio y sencillo. Sabiendo aquellas ramas disponibles, si queremos cambiar a alguna, únicamente habrá que realizar el checkout correspondiente, tanto sea local como remota.