C'è un modo per generare un registro di commit git per l'ultimo mese ed esportarlo come file CSV? Sto cercando qualcosa che possa essere eseguito dalla riga di comando o da un'app di terze parti. Vorrei le seguenti colonne: autore, data di commit, oggetto, file modificato e hash.Come posso generare un log di commit git per l'ultimo mese ed esportarlo come CSV?
risposta
È 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.
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
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. –
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
- 1. Scrivere nel file CSV ed esportarlo?
- 2. Come configurare 'git log' per mostrare 'data di commit'
- 3. Come posso annullare un commit Git DOPO un git push?
- 4. Come catturare un messaggio di commit git ed eseguire un'azione
- 5. Come posso cancellare un commit su git
- 6. Come posso "riaprire" un commit Git?
- 7. Come generare il log delle modifiche: git log dall'ultima generazione di Hudson?
- 8. Come posso ottenere git per ignorare i miei file CSV?
- 9. Come posso "git log" solo il codice pubblicato nel trunk?
- 10. Come posso generare/applicare patch git solo per commit che alterano file specifici
- 11. Come posso visualizzare il nome dei rami in `git log`?
- 12. Come posso eseguire il backport di un commit in git?
- 13. Come contrassegnare un problema come risolto dal log di commit?
- 14. Come cancellare un 'git commit' da LOG, come se non fosse mai esistito
- 15. Come posso eseguire `git commit` e` git push` in atomo?
- 16. Come posso spingere un commit Git senza uno precedente?
- 17. Come posso annullare l'ultimo commit in un repository git bare?
- 18. log git: mostra solo il commit di ieri
- 19. Come includere commenti di commit git?
- 20. Combina locale Git commit in un commit per git-svn
- 21. Come trovare git commit nel repository tramite messaggio di commit?
- 22. Come posso aggiungere un pulsante a un rapporto di accesso per esportarlo in Excel/PDF?
- 23. Git come salvare un log git preimpostato --format
- 24. Rebases log Git
- 25. Come posso eliminare tutte le interruzioni di riga per generare un CSV corretto?
- 26. git cerca registro di commit per ID commit
- 27. Come eliminare git-notes commit?
- 28. Come posso vedere i commit in arrivo in git?
- 29. Posso eseguire il escape dei caratteri nell'output di git log?
- 30. In un Makefile, come posso recuperare e assegnare un hash di commit git a una variabile?
Funziona perfettamente! Grazie. C'è un modo per includere (in una colonna separata) quale file è stato modificato/modificato? –
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
Questo è bello. Ma c'è anche un'opzione per l'ultimo mese dal 1 ° all'ultimo giorno di esso? –