2012-05-02 14 views

risposta

72

È possibile utilizzare l'opzione --since e --pretty di git log, per esempio:

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

Fare riferimento alla sezione FORMATI GRAZIOSI del Git log man page per ulteriori opzioni.

+0

Funziona perfettamente! Grazie. C'è un modo per includere (in una colonna separata) quale file è stato modificato/modificato? –

+1

Questo è più complicato, perché in generale, c'è più di un file interessato da un commit. Vuoi una riga per * file * (quindi più righe per lo stesso commit) o ​​un elenco (separato da punto e virgola?) Di file interessati da commit? In ogni caso, ciò implicherà uno script di shell, immagino. – Simon

+0

Questo è bello. Ma c'è anche un'opzione per l'ultimo mese dal 1 ° all'ultimo giorno di esso? –

24

Questo comando crea un file CSV formattato contenente hash, utente, data/ora, la descrizione, i file modificati, inserimenti, cancellazioni

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

I commit di unione hanno incasinato l'output per me, aggiungendo il parametro '--no-merges' aiutato in questo. Ho anche usato '% x09' per un separatore di tabulazioni invece di virgola per quei testi di commit contenenti virgole. –

2

Per aggiungere, se si desidera applicare intervallo di date, aggiungere o --after --prima in questo formato "yyyy-mM-d"

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