2009-07-29 17 views
22

Un mio progetto di 5 mesi si sta avvicinando alla fine e come fan di statistiche inutili,
Vorrei sapere quanti commit sono stati effettuati dall'inizio del repository.Numero di commit in un repository git

Come lo scopro?

Note:

  1. So che non v'è alcun repository uno, io sono solo interessati alla versione locale.

  2. Questo è banale in subversion, poiché l'identificatore di revisione sembra essere il numero di commit.

+6

In realtà, le revisioni SVN sono garantite solo per essere monotone, non consecutive. Va perfettamente bene per un repository contenere sei revisioni numerate 4, 8, 15, 16, 23, 42. –

risposta

40

Per ottenere il numero di commit sul ramo corrente:

 
git log --pretty=oneline | wc -l 

Per un conteggio più completa, uso:

 
git rev-list --all | wc -l 

Vedere la docmentation per git rev-list per i dettagli su come specificare oggetti da contare.

Si è tentati di provare qualcosa di simile:

 
find .git/objects -type f | wc -l 

ma questo non conterà oggetti imballati. È meglio attenersi a git rev-list.

+1

Grazie, git guru. So che questa non era la prima soluzione di wc -l, ma il fatto che questo guardi all'attuale branca è buono a sapersi. –

+1

E ovviamente puoi contare il numero di commit da qualche revisione con ad es. "git rev-list v0.9 .. | wc -l". E c'è anche git-shortlog (vedi la sua documentazione). –

+0

Si noti inoltre che è possibile saltare l'unione di commit con 'git log --no-merges' poiché i commit di unione possono compensare le proprie statistiche. – Ryan

6

Ci può essere un più elegante modo per farlo, ma vorrei solo correre:

git log --pretty=oneline | wc -l 
2

solo correre 'gitk'. Mostrerà anche il numero di commit sullo schermo.

3

Altri hanno già pubblicato le risposte più facili, ma qui ci sono un paio di opzioni che potrebbero anche essere di interesse.

Easy Git è un involucro leggero e semplice (script perl a singolo file) per Git. Una bella funzionalità che aggiunge a Git è un comando "info" (esecuzione: eg info) che fornisce alcune informazioni utili sul repository, incluso il numero di commit, file, directory, contributori e file più grande.

GitStats è un altro strumento che offre tutti i tipi di dati statistici sul repository. Verifica il loro examples, ad esempio an analysis of the git project.

13
 

$ git shortlog -s  # or git shortlog -s -n 
    2 Adam Jacob 
    2 Matt Ray 
    19 Mike Adolphs 
    151 John Jackson 
    36 jtimberman 
    2 mattray 
    4 bkilroy 
+1

Questo non risponde alla domanda, ma è una buona metrica da sapere. +1. –

Problemi correlati