git branch vs $ (git branch)

Cuando ejecuto git branch en la línea de command obtengo una list de todas las twigs en un repository, sin embargo, cuando ejecuto $(git branch) en un subset, primero imprime una list de files en la carpeta de nivel superior en un repository antes de imprimir los nombres de las sucursales. ¿Por qué?

Básicamente estoy tratando de iterar sobre las twigs utilizando un bucle for, pero la list de files rompe mi script.

 for i in $(git branch); do echo $i done 

Debido a que su primera twig (o la twig desprotegida) tiene un * lado, que es una comodín de shell. Esto se está evaluando y expandiendo a la list de files en el directory actual.

Intente consultar una twig más abajo en la list, encontrará la list de movimientos de files para insert en la list al lado de la twig actualmente desprotegida, no en la parte superior.

 $ git branch * master 

Prueba echo * master en tu caparazón y mira lo que obtienes?

Consejo: Obtendrá la list de files en el directory actual de la expansión global del shell de * .

Ver DontReadLinesWithFor para más detalles.