2012-05-02 6 views

Respuesta

72

Usted puede utilizar la opción --since y --pretty de git log, por ejemplo:

git log --since="last month" --pretty=format:'%h,%an,%ar,%s' > log.csv 

, consultar la sección FORMATOS BONITAS del Git log man page para más opciones.

+0

¡Funciona perfectamente! Gracias. ¿Hay alguna manera de incluir (en una columna separada) qué archivo fue afectado/editado? –

+1

Esto es más complicado, porque en general, hay más de un archivo afectado por una confirmación. ¿Desea una línea por * archivo * (por lo tanto, varias líneas para la misma confirmación) o una lista (separada por punto y coma) de archivos afectados por confirmación? En cualquier caso, supongo que supondrá un script de shell. – Simon

+0

Esto es bueno. ¿Pero también hay una opción para el último mes desde el 1 ° hasta el último día? –

24

Este comando crea un archivo CSV con formato que contiene hachís, usuario, fecha/hora, descripción, archivos cambiados, inserciones, supresiones

git log --pretty=format:'"%h","%an","%aD","%s",' --shortstat --no-merges | paste - - - > log.csv 
+2

los commits de fusión estaban estropeando la salida, añadiendo el parámetro '--no-merges' ayudado con eso. También usé '% x09' para un separador de pestañas en lugar de coma para aquellos textos de confirmación que contienen comas. –

2

Para añadir, si se desea aplicar el intervalo de fechas, añadir o --after --antes en este formato "aaaa-mM-d"

git log --before="2016-12-1" --pretty=format:'"%h","%an","%ae","%aD","%s",' --shortstat --no-merges | paste - - - > log.csv 
Cuestiones relacionadas