¿Mejor forma de get un post de confirmación de GIT con hash corto?

Hola chicos, actualmente estoy recibiendo mi post de confirmación para un cierto hash de confirmación usando esto a continuación

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

Sin embargo, esto parece extremadamente ineficiente, ¿existe una forma más inteligente de hacer esto, o estoy atrapado con la muda y la sorpresa?

git log tomas de git log (entre otras cosas):

  • -n num para limitar el número de confirmaciones que se muestran: elija 1 (y si num es 9 o less, puede escribir - num , por lo tanto, -1 , para abreviar)
  • --pretty=format: string with directives para cambiar el formatting de salida de logging. La directiva %s obtiene el "sujeto" de compromiso, que es lo que también obtienes con la oneline .

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

Para get una list completa de las directivas de formatting, consulte la documentation de logging de git , en "PRETTY FORMATS" (aproximadamente a mitad de path).

Dependiendo de la cantidad de post de compromiso que realmente desee, existen varios especificadores de formatting bonito que puede usar:

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

Así que algo así 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 solo la confirmación, en lugar de recorrer el tree de historial.

Esto puede acortarlo un poco

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

Me gusta tener las cosas importantes almacenadas 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