Come git log da tutti i rami per l'autore contemporaneamente?


230

Ho bisogno di ottenere il rapporto di tutti i commit che l'autore ha fatto. Finora, ho lo script che racchiude il seguente comando:

git log --pretty=format:"%ad:%an:%d:%B" --date=short --reverse --all --since=2.months.ago --author=Petr

Funziona bene. Tuttavia, riporta solo le azioni per il ramo corrente. C'è qualche opzione che registra i messaggi di commit per l'autore da tutti i rami , non solo da quello corrente?

In altre parole, git può creare una sequenza inversa (per datetime) di tutti i commit nel repository ed estrarre le informazioni di log da quella sequenza?

Risolto: (copiato dal commento qui sotto che è nascosto altrimenti)

Il problema era che avevo un repository e due cloni per lavorare contemporaneamente su due rami. Ho inviato le modifiche al repository di origine, ma ho dimenticato di recuperare le modifiche al repository clonato. In questo modo sembrava che --allnon funzionasse quando lo si utilizza per il repository clonato.


Immagino che tu possa scrivere uno script di shell per questo: git logaccetta committishcome primo argomento: git log mybranch(ed elenca tutti i rami con git branch).
Alexander Pavlov

@AlexanderPavlov: probabilmente non capisco. Qual è il committish? È possibile ottenere le informazioni tramite un comando git?
pepr

1
Ricevo commit da tutti i rami, non solo da quello attuale? Questo è previsto poiché fornisci --all. Il tuo comando è corretto
CharlesB

1
@AlexanderPavlov: non preoccuparti di git rev-listanalizzare, git log --allva bene.
CharlesB

1
@CharlesB: Questo era quello che pensavo del --all, ma a quanto pare non funziona in questo modo per me. Non capisco la sua spiegazione della guida: fai finta che tutti i riferimenti in refs/sono elencati sulla riga di comando come <commit>.
pepr

Risposte:


203

Il tuo comando è corretto, poiché utilizzi l' --allopzione che fornisce tutti i commit da tutti i rami. Per rispondere alla domanda nel tuo commento, funziona anche in repository semplici.


69

Invece di --allte potresti voler usare --branches, poiché --allinclude anche refs/tagse refs/remotes.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.