Nueva twig remota en GitHub no se muestra cuando se usa git branch -r

Parece que podríamos usar

git branch -r 

o

 git branch -a 

para ver twigs remotas. Sin embargo, cuando git clone mi repository en GitHub, y luego agregué una twig en GitHub, y probé los commands anteriores, no puedo ver las nuevas sucursales en mi máquina local. Incluso edité un file y me comprometí en la nueva twig, y ​​todavía no pude ver la nueva twig en la máquina local usando esos commands.

Hasta que use un git pull , entonces una git branch -a mostrará esa nueva twig (pero una git branch no). Pero creo que no quiero usar un git pull ya que actualizará mis files localmente. En ese caso, ¿puedo ver todas las sucursales remotas?

(también, veré la nueva twig como remotes/origin/wah-la-la usando git branch -a , y luego solo después de hacer un git checkout wah-la-la , luego de este punto, estaré capaz de ver tanto master como wah-la-la cuando hago una git branch . ¿No puedo ver wah-la-la antes de hacer un checkout?)

git branch solo mostrará las sucursales que existen localmente en su repository local (ya sea twigs directas o sucursales remotas). Para actualizarlos, puedes usar git fetch y get todos los objects actuales desde el control remoto.

También puede usar git ls-remote para listr todas las twigs de un control remoto sin recuperar nada de él.

Me he acostumbrado a dividir un pull en fetch y merge , en el caso de la twig master :

 git fetch origin git log --graph --decorate --pretty=oneline --abbrev-commit --all git merge origin/master 

El command de log obviamente se abrevia en un alias

Cuando ejecuta git branch -a , solo muestra las twigs de rastreo local y remoto que ya se obtuvieron del repository remoto. Primero necesita get las actualizaciones del repository remoto y luego podrá enumerar nuevas sucursales de seguimiento remoto:

 git remote update git branch -a 

git branch está diseñada para ser rápida, cada vez que la ejecutas. Si tiene que consultar la networking para search nuevas twigs que otros podrían haber agregado, eso haría que fuera más lento. Y sería una mala separación de responsabilidades: hay otros commands para realizar operaciones de networking.

Para actualizar la list de twigs de un control remoto específico, por ejemplo origin , haga una git fetch :

 git fetch origin 

Después de eso, verá las nuevas twigs con la git branch -r .

Para actualizar las twigs remotas de todos los controles remotos:

 git remote update