ver usar tag revertir regresar historial hacer devolver descargar como cambios archivo git bash logging changelog

usar - git: registro de cambios día a día



revertir cambios en un archivo git (5)

Aquí está sucio, pero la versión de trabajo del script que se me ocurrió:

#!/bin/bash # Generates changelog day by day NEXT=$(date +%F) echo "CHANGELOG" echo ---------------------- git log --no-merges --format="%cd" --date=short | sort -u -r | while read DATE ; do echo echo [$DATE] GIT_PAGER=cat git log --no-merges --format=" * %s" --since=$DATE --until=$NEXT NEXT=$DATE done

Cómo generar el registro de cambios de las confirmaciones agrupadas por fecha, en formato:

[date today] - commit message1 - commit message2 - commit message3 ... [date day+3] - commit message1 - commit message2 - commit message3 ... (skip this day if no commits) [date day+1] - commit message1 - commit message2 - commit message3 ... [date since] - commit message1 - commit message2 - commit message3

¿Algún comando git log, o script de bash inteligente?



Eso requeriría sin duda algún tipo de guión.
Un poco como esta commandline-fu

for k in `git branch|perl -pe s/^..//`;do echo -e `git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k|head -n 1`//t$k;done|sort -r

(No es exactamente lo que buscas, pero aún así te da una idea)

Sé sobre GitStats que también tiene datos organizados por fecha (pero no los mensajes de confirmación)

Nota: la parte de la git branch de este comando no está ajustada para las secuencias de comandos, como comenta Jakub Narębski .
git for-each-ref o git show-ref son candidatos naturales para los comandos de scripting, ya que son comandos de plomería .


No pude obtener la respuesta aceptada para manejar las confirmaciones de hoy, ya que mi configuración no manejó la variable NEXT correctamente en la primera iteración. Los parámetros de registro de Git también aceptarán una hora, lo que elimina la necesidad de una fecha SIGUIENTE:

#!/bin/bash # Generates changelog day by day echo "CHANGELOG" echo ---------------------- git log --no-merges --format="%cd" --date=short | sort -u -r | while read DATE ; do echo echo [$DATE] GIT_PAGER=cat git log --no-merges --format=" * %s" --since="$DATE 00:00:00" --until="$DATE 24:00:00" done


git log tiene --since and --until , no debería ser difícil envolver algunas cosas alrededor de eso.