2012-05-02 7 views

Odpowiedz

72

Można użyć opcji git log--since i --pretty, na przykład:

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

Patrz sekcja PRETTY formatów z Git log man page więcej opcji.

+0

Działa idealnie! Dziękuję Ci. Czy istnieje sposób włączenia (w oddzielnej kolumnie), który plik został zmieniony/zmieniony? –

+1

Jest to trudniejsze, ponieważ na ogół istnieje więcej niż jeden plik podlegający zatwierdzeniu. Czy chcesz mieć jedną linię przez * plik * (czyli wiele linii dla tego samego zatwierdzenia) lub (oddzieloną średnikami?) Listę plików podlegających wpływowi na zatwierdzenie? W każdym razie będzie to wymagać skryptu powłoki. – Simon

+0

To jest miłe. Ale czy jest także opcja na ostatni miesiąc od 1 do ostatniego dnia? –

24

To polecenie tworzy sformatowany plik CSV zawierający hash, user, data/godzina, opis, pliki zmienione, insercji, delecji

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

zatwierdzenia scalania zepsuły dane wyjściowe dla mnie, dodając parametr '--no-merges", któremu pomogło to. Użyłem również '% x09' dla separatora tabulacji zamiast przecinka dla tekstów commit zawierających przecinki. –

2

dodać, jeśli chcesz zastosować zakres dat, lub dodać --after - Przedtem w tym formacie "rrrr-mM-d"

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