leer el bucle de <(git log –oneline) tiene salida diferente de "git log –oneline" en la terminal

Me encuentro con un problema extraño. Estoy tratando de analizar el resultado de un command git. Cuando ejecuto el command git desde la línea de command, funciona como se esperaba:

$ git log --oneline 32004f 32004f9 (tag: This_is_a_tag,_too, tag: Tag_from_command_line, origin/Project_A, Project_A) Merged 65f6f61 More changes 925f619 (tag: This_is_a_tag) Pulled from remote (etc.) 

Pero tan pronto como trato de networkingireccionar o canalizar la salida, todo lo que está entre paréntesis desaparece:

 $ while read -r ; do echo $REPLY; done < <(git log --oneline 32004f) 32004f9 Merged 65f6f61 More changes 925f619 Pulled from remote 

[Editar: Tenga en count que el command echo se usa estrictamente para ilustrar el problema. La secuencia de commands real dividirá los resultados en múltiples variables para analizar y procesar]

 $ git log --oneline 32004f | hexdump -C | head 00000000 33 32 30 30 34 66 39 20 4d 65 72 67 65 64 0a 36 |32004f9 Merged.6| 00000010 35 66 36 66 36 31 20 4d 6f 72 65 20 63 68 61 6e |5f6f61 More chan| 00000020 67 65 73 0a 39 32 35 66 36 31 39 20 50 75 6c 6c |ges.925f619 Pull| 00000030 65 64 20 66 72 6f 6d 20 72 65 6d 6f 74 65 0a 64 |ed from remote.d| 

Pero una secuencia de commands de shell rápida que hice eco entre paréntesis funciona bien:

 $ cat test.sh #!/bin/bash echo "32004f9 (HEAD -> Project_A, tag: This_is_a_tag,_too, tag: Tag_from_command_line, origin /Project_A) Merged" $ while read -r ; do echo $REPLY; done < <(./test.sh) 32004f9 (HEAD -> Project_A, tag: This_is_a_tag,_too, tag: Tag_from_command_line, origin /Project_A) Merged 

Estoy perplejo. Puede alguien ayudarme con esto?

Versión de Bash: GNU bash, versión 4.4.12 (3) -release (i686-pc-cygwin) versión de git: versión de git 2.15.0

Verifique la opción --decorate para el git log :

--no-decorate, --decorate[=short|full|auto|no]

Imprima los nombres de las references de las confirmaciones que se muestran. Si se especifica un short , el nombre del ref prefijo refs/heads/ , refs/tags/ y refs/remotes/ no se imprimirán. Si se especifica completo, se imprimirá el nombre completo de la reference (incluido el prefijo). Si se especifica auto , si la salida va a un terminal, los nombres de las references se muestran como si se hubieran dado cortos, de lo contrario no se mostrarán los nombres de las references . La opción pnetworkingeterminada es short .

Parece que tienes --decorate=auto establecido en algún lugar de tu configuration de git.

Para forzar los nombres de las references (incluidas las tags), simplemente especifique:

 git log --oneline 32004f --decorate=short