¿Cómo leer el último comentario de confirmación?

401

A menudo, durante un commit ( $ git -commit -m ""), deseo leer mi último comentario para recordar el progreso que he realizado. ¿Hay una manera fácil de acceder directamente al último mensaje de confirmación a través de la línea de comandos? (Estoy usando Windows).

whamsicore
fuente
66
Si es una acción regular, haga un alias(por ejemplo wherewasi;-) para la solución / línea de comando elegida. También puede incluir la información de la sucursal.
Philip Oakley

Respuestas:

756
git show

es el más rápido de escribir, pero también muestra la diferencia.

git log -1

Es rápido y sencillo.

git log -1 --pretty=%B

si solo necesita el mensaje de confirmación y nada más.

CB Bailey
fuente
2
el formato% B era lo que necesitaba para no sangrar el mensaje de confirmación. Y sí, @Juh_, a pesar de que git gui no se ajusta en línea para usted, es una buena idea usar el texto de 80 columnas en los mensajes de confirmación, no línea por párrafo.
Peter Cordes
44
@Juh_ Puedes mostrar el mensaje completo usando git log -1 --pretty=%B | cat, pero como dijo Peter, debes tratar de mantenerlo en 80 caracteres.
Ruckus T-Boom
3
@Juh_ esto es demasiado tarde, pero si desea que el mensaje de confirmación se ajuste a la línea, simplemente catgit log -1 --pretty= | cat
canalice
8
Alguien que busca más información sobre los marcadores de posición porcentuales, consulte: kernel.org/pub/software/scm/git/docs/… (desplácese hacia abajo hasta format:<string>).
Imme
3
Si agrega el format:prefijo al %Bsugerido en los documentos man, no mostrará líneas en blanco adicionales al final de la salida:git log -1 --pretty=format:%B
Mariano Ruiz
84

Generalmente:

git log -n

le mostrará los últimos nmensajes de confirmación

Más elegante: si desea una visión general rápida de sus confirmaciones

git log --oneline -n

Esto mostrará solo la primera línea de los últimos nmensajes de confirmación.

Puede guardar esto como un alias git o un alias de shell con un comando más corto. Lo tengo en mi shell como glog, por ejemplo, y puedo ver mis últimos 10 mensajes de confirmación con glog -10.

Abizern
fuente
23

git log -1mostrará el último mensaje de confirmación o git log -1 --onelinesi solo desea que se muestren el sha1 y el mensaje de confirmación asociado.

Gregory Pakosz
fuente
¿Qué pasa con lo mismo en mercurial?
Nevin Raj Victor
14

Puedes usar

git show -s --format=%s

Aquí --formathabilita varias opciones de impresión, consulte la documentación aquí . Específicamente, %ssignifica 'sujeto'. Además, -ssignifica --no-patch, que suprime el contenido de diferencias.

A menudo uso

git show -s --format='%h %s'

donde %hdenota un hash corto del commit

Otra forma es

git show-branch --no-name HEAD

Parece correr más rápido que a la inversa.

De hecho, escribí una pequeña herramienta para ver el estado de todos mis repositorios. Lo puedes encontrar en github .

nos
fuente
OMI, esto es mejor que la respuesta aceptada para múltiples confirmaciones. No produce saltos de línea innecesarios para mí. Las confirmaciones múltiples (es decir, las últimas 5) se pueden mostrar incluyendo -5, es decirgit show -s --format=%s -5
Sigmatics el
10

git log -1 branch_name le mostrará el último mensaje de la rama especificada (es decir, no necesariamente la rama en la que se encuentra actualmente).

CJ Dennis
fuente
7

Para algo un poco más legible, ejecute este comando una vez:

git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"

para que cuando corras:

git lg

obtienes una buena lectura. Para mostrar solo la última línea:

git lg -1

Solución encontrada aquí

sungiant
fuente
4

Para empezar git log -1 --pretty='%s'

Pero el siguiente cubre todos los casos,

git log --pretty='format:%Creset%s' --no-merges -1

  • No hay espacios en blanco no deseados
  • Descarta merge commits
  • Sin ID de compromiso, fecha, Muestra solo los mensajes.

Pegar y ver por ti mismo

nehem
fuente
3

hice esto

git reflog -1 | sed 's/^.*: //'
LukePOLO
fuente
0

Acabo de encontrar una solución alternativa con shell recuperando el comando anterior.

Presione Ctrl-R para que aparezca el comando de búsqueda inversa:

reverse-i-search

Luego comience a escribir git commit -m , esto agregará esto como comando de búsqueda, y esto trae el git commit anterior con su mensaje:

reverse-i-search`git commit -m`: git commit -m "message"

Entrar. ¡Eso es!

(Probado en Ubuntu Shell)

Steve S.
fuente