¿Cómo puedo mostrar una salida de registro git con (al menos) esta información:
* author
* commit date
* change
Lo quiero comprimido a una línea por entrada de registro. ¿Cuál es el formato más corto posible para eso?
(intentado --format=oneline
pero eso no muestra la fecha)
git
formatting
logging
Jesper Rønn-Jensen
fuente
fuente
Respuestas:
git log --pretty=format:"%h%x09%an%x09%ad%x09%s"
hizo el trabajo Esto produce:
Inspirado por la pregunta stackoverflow: "salida de registro git como svn ls -v" , descubrí que podía agregar los parámetros exactos que necesitaba.
Para acortar la fecha (sin mostrar la hora) use
--date=short
En caso de que tuviera curiosidad sobre cuáles eran las diferentes opciones:
%h
= commit hash abreviado%x09
= tabulación (carácter para el código 9)%an
= nombre del%ad
autor = fecha del autor (el formato respeta --date = opción)%s
= asuntoDe kernel.org/pub/software/scm /git/docs/git-log.html (sección BONOS FORMATOS) por comentario de Vivek.
fuente
date=short
como sugiere cdunn2001 en otra respuestagit log --pretty=format:"%h %ad%x09%an%x09%s" --date=short
git log --pretty=format:'%C(yellow)%h %Cred%ad %Cblue%an%Cgreen%d %Creset%s' --date=short
alias glop="git log --pretty=format:'%C(yellow)%h|%Cred%ad|%Cblue%an|%Cgreen%d %Creset%s' --date=short | column -ts'|' | less -r"
Yo uso estas dos configuraciones .gitconfig:
% ad es la fecha del autor, que puede anularse
--date
o la opción especificada en la stanza [log] en .gitconfig. Me gusta la fecha relativa porque da una sensación inmediata de cuándo se cometieron las cosas. La salida se ve así:Por supuesto, todo esto es en color, por lo que es fácil distinguir las diversas partes de una línea de registro. También es el valor predeterminado al escribir
git log
debido a la sección [formato].ACTUALIZACIÓN 2014: dado que git ahora admite relleno, tengo una buena enmienda a la versión anterior:
Esta derecha alinea las fechas relativas y la izquierda alinea los nombres de los confirmadores, lo que significa que obtienes una apariencia de columna que es fácil a la vista.
Captura de pantallaACTUALIZACIÓN 2016: Dado que la firma de confirmación de GPG se está convirtiendo en una cosa, pensé en actualizar esta publicación con una versión que incluye verificación de firma (en la captura de pantalla es la letra magenta justo después de la confirmación). Una breve explicación de la bandera:
Otros cambios incluyen:
git log -g
ahora contiene el selector de reflog.3 years, 4..
. Ej. )%<(7,trunc)
o consulte la función git .mailmap para acortar los nombres de los comprometidos)Aquí está la configuración:
En general, la alineación de columnas ahora se conserva mucho mejor a expensas de algunos (con suerte) caracteres inútiles. No dude en editar si tiene alguna mejora, me encantaría hacer que el color del mensaje dependa de si una confirmación está firmada, pero no parece que sea posible un cajero automático.
Captura de pantallafuente
tig
respuesta brinda interactividad sin la configuración requerida, pero esta es brillante: brinda la salida de una línea solicitada (¡con color para arrancar!) Utilizando el comando estándar 'git log'. Muy agradable.>
<
marcas. Intenté agregar%m
al formato, pero luego>
aparece cada vez, incluso para un normalgit log
. ¿Alguna pista de cómo las marcas se comportan normalmente con el formato?--oneline
es solo un alias para--pretty=oneline
.format.pretty
es el formato bonito predeterminado, pero no hay forma de anularformat.oneline
afaik. Lo que haría es omitir lapretty = shortlog
línea en la configuración y luego crear un alias para ejecutargit log --pretty=shortlog
.utilizar
--date=
para establecer un formato de fechafuente
Siéntase libre de usar este:
Nota la
-7
en cuenta que al final, para mostrar solo las últimas 7 entradas.Mira:
fuente
--date=short
se puede agregar para hacerlo más corto.git log
siempre muestra el historial de la rama actualmente desprotegida.%d
para restaurar "nombres de referencia" como(HEAD -> master)
.reset
lugar deauto
?tig es una posible alternativa al uso del registro de git comando , disponible en las principales distribuciones de código abierto * nix.
En debian o ubuntu intente instalar y ejecutar de la siguiente manera:
(tig se instala)
(el registro se muestra en el buscapersonas de la siguiente manera, con el hash de confirmación actual en la parte inferior)
Dado que Markdown no admite la coloración de texto, imagine: columna 1: azul; columna 2: verde; columna 3: color de texto predeterminado. Última línea, resaltada. Presione Q o q para salir.
tig
justifica las columnas sin bordes irregulares , lo que no garantiza una pestaña ASCII (% x09).Para un formato de fecha corto, presione D mayúscula (nota: d minúscula abre una vista de diferencias). Configúrelo permanentemente agregando
show-date = short
a ~ / .tigrc; o en un[tig]
sección en .git / configure o ~ / .gitconfig.Para ver un cambio completo :
Dado que tig es independiente de git y aparentemente * nix específico, probablemente requiera que cygwin se instale en Windows. Pero para fedora Creo que los comandos de instalación son
$ su
,(enter root password)
,# yum install tig
. Para FreeBSD intentarlo% su
,(enter root password)
,# pkg_add -r tig
.Por cierto, tig es bueno para mucho más que una vista rápida del registro: capturas de pantalla y manual
fuente
tig
en mi consola simplemente me da un error-bash: tig: command not found
pact install tig
o
... haciendo referencia a la respuesta anterior de cdunn2001: perdería el correo electrónico del autor e incluiría solo el nombre del autor, según Jesper y knittl, pero de acuerdo con la idea de cdunn2001 de mantener la salida en columnas de ancho constante para facilitar la lectura ( ¡gran idea!). Sin embargo, en lugar de una columna separada a la izquierda para el nombre del autor, envuelvo esa marca al final del comando con paréntesis o la compenso con una tubería. (Realmente podría ser cualquier personaje que sirva como una ayuda visual para leer la salida ... aunque podría tener sentido evitar las barras inclinadas hacia atrás o hacia adelante para reducir la confusión de la salida con un directorio o algo así).
Salida de muestra:
fuente
Utilice alias git predefinido, es decir:
Creado una vez por comando:
https://git-scm.com/book/tr/v2/Git-Basics-Git-Aliases
O más coloreado con gráfico:
fuente
Resultado:
Lo de ancho constante es lo primero. La parte menos importante, el dominio de correo electrónico, es la última y fácil de filtrar.
fuente
Para mostrar los commits que he preparado que están listos para presionar, hago
El resultado se parece a:
Donde la primera columna aparece en amarillo, y la 'H' 'm' y 't' en parentesis muestran la CABEZA, el maestro y el tronco y aparecen en sus colores habituales "- decorados"
Aquí está con saltos de línea para que pueda ver lo que está haciendo:
Me he alias a "escenificado" con:
(¿Hay una manera más fácil de escapar de eso? Fue un poco complicado resolver lo que necesitaba escapar)
fuente
Todas las sugerencias mencionadas utilizan
%s
marcador de posición para el tema. Lo recomendaré%B
porque el%s
formato conserva nuevas líneas y el mensaje de confirmación de varias líneas aparece aplastado.fuente
Ejecute esto en la carpeta del proyecto:
Y si lo desea, agregue esta línea a su ~ / .gitconfig:
fuente
Pruebe git log --pretty = fuller, le mostrará: - Autor: Fecha del autor: Confirmar: Fecha de confirmación:
Espero que esto ayude.
fuente