por qué git branch y $ (git branch) arrojan resultados diferentes

Estoy intentando crear un script bash que imprima commits antes de la twig actual en otras twigs. Sin embargo, cuando ejecuto command git branch en una subshell, obtengo no solo nombres de twigs sino también una list de files y carpetas en el directory actual. ¿Por qué llamar $(git branch) comporta de esta manera?

No es la sustitución de command, es la cita. Aquí está el resultado de la git branch de git branch en un repository:

 $ git branch 5-job-test-fails * master revisions with_cool_background 

Observe el askerisk.

Cuando escriba echo $(git branch) , dado que el argumento no está citado, el asterisco se expandirá a los files en el directory actual:

 $ echo $(git branch) 5-job-test-fails app bin cable config config.ru db erd.pdf Gemfile Gemfile.lock Guardfile lib log public Rakefile README.rdoc test tmp vendor master revisions with_cool_background 

Para superar esto, cite el argumento:

 $ echo "$(git branch)" 5-job-test-fails * master revisions with_cool_background