Frecuentemente necesito hacer esto cuando sincronizo varias PCs y al parecer siempre olvido cuál era el comando correcto. Digamos que tenemos más de una rama en el repositorio remoto, y queremos traerlas a nuestro repositorio local:

Veamos las ramas disponibles con git remote:
$ git remote show origin
* remote origin
URL: *************
Remote branch merged with 'git pull'
while on branch master
master
Tracked remote branches
haml master
Afortunadamente, el comando para obtener una rama remota es bastante simple:
git checkout --track -b <local branch> <remote>/<tracked branch>
Así que en nuestro caso, utilizamos este comando:
git checkout --track -b haml origin/haml
También es posible usar una versión más simple del mismo comando:
git checkout -t origin/haml