tag remote practices delete create crear comandos best git bash awk grep git-log

remote - git tags best practices



¿Mejor manera de obtener un mensaje de confirmación GIT por hash corto? (5)

Dependiendo de la cantidad de mensajes de confirmación que realmente desee, hay varios especificadores de formato bonito que puede usar:

· %s: subject · %f: sanitized subject line, suitable for a filename · %b: body · %B: raw body (unwrapped subject and body)

Entonces, algo como git log -1 --pretty=format:%b <hash> , o use uno de los otros especificadores (creo que %s probablemente esté más cerca de lo que está haciendo ahora). El -1 limita el git log a un solo compromiso, en lugar de recorrer el árbol de historial.

Hola chicos, actualmente estoy recibiendo mi mensaje de confirmación para un determinado hash de confirmación al usar esto a continuación

hash=''b55da97'' git log --pretty=oneline ${hash} | grep "${hash}" | awk ''{ print $2 }''

Sin embargo, esto parece extremadamente ineficiente, ¿hay una forma más inteligente y económica de hacerlo o me quedo con grepping y awking?


Esto puede abreviar algunos

git log --pretty=oneline ${hash} | awk ''$0~var {print $2}'' var="${hash}"


Me gusta tener las cosas importantes en una sola línea ... Esto es lo que uso, construido a partir de otras respuestas en esta página:

git_log_for_commit.sh

IT=$(git log -1 --pretty=format:"%an, %s, %b, %ai" $*) echo "$IT"

salida

jdoe, WORK1766032 - Added templating engine, WIP, 2013-08-15 14:25:59 +0000


Una respuesta aún más corta que la que se enumera aquí es

git log --pretty=oneline {your_hash} | grep {your_hash}


git log toma (entre otras cosas):

  • -n num para limitar el número de confirmaciones mostradas: elija 1 (y si num es 9 o menos, simplemente puede escribir - num , por lo tanto, -1 , para abreviar)
  • --pretty=format: string with directives para cambiar el formato de salida del registro. La directiva %s obtiene el "asunto" de confirmación, que es lo que también obtiene con oneline .

Por lo tanto: git log -n 1 --pretty=format:%s $hash (o git log -1 --pretty=format:%s ) hará el truco aquí.

Para obtener una lista completa de las directivas de formato, consulte la documentación de registro de git , en "FORMATOS BONITOS" (aproximadamente a la mitad).