ver tipos tag modificados log etiquetas crear cambios archivos archivo git formatting logging

tag - tipos de etiquetas en git



El resultado más corto posible del registro de git que contiene autor y fecha (11)

¿Cómo puedo mostrar una salida de registro de 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)


Ejecutar esto en la carpeta del proyecto:

$ git log --pretty=format:"%C(yellow)%h %ar %C(auto)%d %Creset %s , %Cblue%cn" --graph --all

Y si lo desea, agregue esta línea a su ~ / .gitconfig:

[alias] ... list = log --pretty=format:/"%C(yellow)%h %ar %C(auto)%d %Creset %s, %Cblue%cn/" --graph --all


Para mostrar los compromisos que he puesto en escena que están listos para empujar lo hago

git log remotes/trunk~4..HEAD --pretty=format:"%C(yellow)%h%C(white) %ad %aN%x09%d%x09%s" --date=short | awk -F''/t'' ''{gsub(/[, ]/,"",$2);gsub(/HEAD/, "/033[1;36mH/033[00m",$2);gsub(/master/, "/033[1;32mm/033[00m",$2);gsub(/trunk/, "/033[1;31mt/033[00m",$2);print $1 "/t" gensub(/([/(/)])/, "/033[0;33m//1/033[00m","g",$2) $3}'' | less -eiFRXS

La salida se ve algo así como:

ef87da7 2013-01-17 haslers (Hm)Fix NPE in Frobble 8f6d80f 2013-01-17 haslers Refactor Frobble 815813b 2013-01-17 haslers (t)Add Wibble to Frobble 3616373 2013-01-17 haslers Add Foo to Frobble 3b5ccf0 2013-01-17 haslers Add Bar to Frobble a1db9ef 2013-01-17 haslers Add Frobble Widget

Donde la primera columna aparece en amarillo, y la ''H'' ''m'' y ''t'' en la parentesis muestran la CABEZA, el maestro y el tronco y aparecen en sus colores habituales "--decorate"

Aquí está con saltos de línea para que pueda ver lo que está haciendo:

git log remotes/trunk~4..HEAD --date=short --pretty=format:"%C(yellow)%h%C(white) %ad %aN%x09%d%x09%s" | awk -F''/t'' ''{ gsub(/[, ]/,"",$2); gsub(/HEAD/, "/033[1;36mH/033[00m",$2); gsub(/master/, "/033[1;32mm/033[00m",$2); gsub(/trunk/, "/033[1;31mt/033[00m",$2); print $1 "/t" gensub(/([/(/)])/, "/033[0;33m//1/033[00m","g",$2) $3}''

Me he aliado a "puesta en escena" con:

git config alias.staged ''!git log remotes/trunk~4..HEAD --date=short --pretty=format:"%C(yellow)%h%C(white) %ad %aN%x09%d%x09%s" | awk -F"/t" "{gsub(/[, ]/,/"/",/$2);gsub(/HEAD/, /"/033[1;36mH/033[00m/",/$2);gsub(/master/, /"/033[1;32mm/033[00m/",/$2);gsub(/trunk/, /"/033[1;31mt/033[00m/",/$2);print /$1 /"/t/" gensub(/([/(/)])/, /"/033[0;33m/////1/033[00m/",/"g/",/$2) /$3}"''

(¿Hay una forma más fácil de escapar de eso? Fue un poco difícil resolver lo que necesitaba escapar)


Siéntase libre de usar este:

git log --pretty="%C(Yellow)%h %C(reset)%ad (%C(Green)%cr%C(reset))%x09 %C(Cyan)%an: %C(reset)%s"

Mira:


Todas las sugerencias mencionadas utilizan %s marcador de posición %s para el tema. Recomendaré usar %B porque %s formato de %s conserva las nuevas líneas y el mensaje de confirmación de varias líneas aparece aplastado.

git log --pretty=format:"%h%x09%an%x09%ai%x09%B"


Use un alias de git predefinido, es decir:

$ git work

Creado una vez por comando:

$ git config --global alias.work ''log --pretty=format:"%h%x09%an%x09%ad%x09%s"''

https://git-scm.com/book/tr/v2/Git-Basics-Git-Aliases

O más coloreado con gráfico:

$ git config --global alias.work ''log --pretty=format:"%C(yellow)%h %ar %C(auto)%d %Creset %s , %Cblue%cn" --graph --all''


Yo uso estas dos configuraciones .gitconfig:

[log] date = relative [format] pretty = format:%h %Cblue%ad%Creset %ae %Cgreen%s%Creset

% ad es la fecha del autor, que se puede anular mediante --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í:

6c3e1a2 2 hours ago [email protected] lsof is a dependency now. 0754f18 11 hours ago [email protected] Properly unmount, so detaching works. 336a3ac 13 hours ago [email protected] Show ami registration command if auto register fails be2ad45 17 hours ago [email protected] Fixes #6. Sao Paolo region is included as well. 5aed68e 17 hours ago [email protected] Shorten while loops

Por supuesto, todo esto es en color, por lo que es fácil distinguir las distintas 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: Ya que git ahora soporta relleno, tengo una buena enmienda a la versión anterior:

pretty = format:%C(yellow)%h %Cblue%>(12)%ad %Cgreen%<(7)%aN%Cred%d %Creset%s

Esta derecha alinea las fechas relativas y la izquierda alinea los nombres de los comensales, lo que significa que obtienes una apariencia de columna que es fácil para los ojos.

Captura de pantalla

ACTUALIZACIÓN 2016: Ya que la firma de compromiso GPG se está convirtiendo en una cosa, pensé que actualizaría 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:

% G ?: muestra "G" para una buena firma (válida), "B" para una mala firma, "U" para una buena firma con validez desconocida y "N" para ninguna firma

Otros cambios incluyen:

  • los colores ahora se eliminan si la salida es diferente a tty (lo cual es útil para grepping, etc.)
  • git log -g ahora contiene el selector de reflog.
  • Guarde 2 parens en refnames y póngalos al final (para preservar la alineación de la columna)
  • Truncar las fechas relativas si son demasiado largas (por ejemplo, 3 years, 4.. )
  • Truncar los nombres de los comités (puede ser un poco corto para algunas personas, solo cambie el %<(7,trunc) o consulte la función git .mailmap para acortar los nombres de los comensales)

Aquí está la configuración:

pretty = format:%C(auto,yellow)%h%C(auto,magenta)% G? %C(auto,blue)%>(12,trunc)%ad %C(auto,green)%<(7,trunc)%aN%C(auto,reset)%s%C(auto,red)% gD% D

En general, la alineación de la columna ahora se conserva mucho mejor a expensas de algunos caracteres (con suerte) inútiles. Siéntase libre de editar si tiene alguna mejora, me encantaría que el color del mensaje dependiera de si un compromiso está firmado, pero no parece que sea posible un cajero automático.

Captura de pantalla


git log --pretty=format:"%h%x09%an%x09%ad%x09%s"

hizo el trabajo Esto produce:

fbc3503 mads Thu Dec 4 07:43:27 2008 +0000 show mobile if phone is null... ec36490 jesper Wed Nov 26 05:41:37 2008 +0000 Cleanup after [942]: Using timezon ae62afd tobias Tue Nov 25 21:42:55 2008 +0000 Fixed #67 by adding time zone supp 164be7e mads Tue Nov 25 19:56:43 2008 +0000 fixed tests, and a ''unending appoi 93f1526 jesper Tue Nov 25 09:45:56 2008 +0000 adding time.ZONE.now as time zone 2f0f8c1 tobias Tue Nov 25 03:07:02 2008 +0000 Timezone configured in environment a33c1dc jesper Tue Nov 25 01:26:18 2008 +0000 updated to most recent will_pagina

Inspirado en la pregunta : "git log output 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 tuvieras curiosidad por saber cuáles eran las diferentes opciones:
%h = hash de cometer abreviado
%x09 = tabulación (carácter para el código 9)
%an = nombre del autor
%ad = fecha de autor (formato respeta - fecha = opción)
%s = sujeto
De kernel.org/pub/software/scm/git/docs/git-log.html (sección PRETTY FORMATS) por el comentario de Vivek.


tig es una posible alternativa al uso del comando git log , disponible en las principales distribuciones de código abierto * nix.

En debian o ubuntu, intente instalar y ejecutar de la siguiente manera:

$ sudo apt-get install tig

(se instala tig)

$ tig

(el registro se muestra en el paginador de la siguiente manera, con el hash de confirmación actual en la parte inferior)

2010-03-17 01:07 ndesigner changes to sponsors list 2010-03-17 00:19 rcoder Raise 404 when an invalid year is specified. 2010-03-17 00:06 rcoder Sponsors page now shows sponsors'' level. -------------------------- skip some lines --------------------------------- [main] 531f35e925f53adeb2146dcfc9c6a6ef24e93619 - commit 1 of 32 (100%)

Como markdown no admite colorear texto, imagine: columna 1: azul; columna 2: verde; columna 3: color de texto predeterminado. Última línea, resaltada. Pulsa 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 corta, presione D mayúscula (nota: minúscula d abre una vista de diferencia). Configúrelo permanentemente agregando show-date = short to ~ / .tigrc; o en una sección [tig] en .git / configure o ~ / .gitconfig.

Para ver un cambio completo :

  • pulsa enter . Se abrirá un panel secundario en la mitad inferior de la ventana.
  • use las teclas k , j para desplazar el cambio en el panel secundario.
  • al mismo tiempo, use las teclas arriba y abajo para pasar de la confirmación a la confirmación.

Dado que tig es independiente de git y aparentemente * nix específico, es probable que 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, intente % su , (enter root password) , # pkg_add -r tig .

Por cierto, tig es bueno para mucho más que una vista rápida del registro: Screenshots y Manual


git log --pretty=format:"%H %an %ad"

use --date= para establecer un formato de fecha

git log --pretty=format:"%H %an %ad" --date=short


git log --pretty=format:''%h %ad %s%x09%ae'' --date=short

Resultado:

e17bae5 2011-09-30 Integrate from development -> main [email protected] eaead2c 2011-09-30 More stuff that is not worth mentioning [email protected] eb6a336 2011-09-22 Merge branch ''freebase'' into development [email protected]

Las cosas de ancho constante son las primeras. La parte menos importante, el dominio de correo electrónico, es la última y fácil de filtrar.


git log --pretty=format:''%h %ad %s (%an)'' --date=short

o

git log --pretty=format:''%h %ad %s | %an'' --date=short

... refiriéndome a la respuesta de cdunn2001 anterior: perdería el correo electrónico del autor e incluiría solo el nombre del autor, según Jesper y knittl, pero siguiendo la idea de cdunn2001 de mantener la producción en columnas de ancho constante para facilitar la lectura ( ¡gran idea!). Sin embargo, en lugar de una columna justificada a la izquierda separada para el nombre del autor, envuelvo esa bandera al final de la orden con un paréntesis o la compensa con una canalización. (Podría ser realmente cualquier carácter que sirva de ayuda visual para leer la salida ... aunque podría tener sentido evitar barras diagonales hacia delante o hacia atrás para reducir la confusión de la salida con un directorio o algo así).

Salida de muestra:

6fdd155 2015-08-10 Fixes casting error in doSave | John Doe c4f4032 2015-08-10 Fix for IE save. Add help button. | Jane 29a24a6 2015-08-10 Fixes bug in Course | Mac