2015-04-20 25 views
8

Perché lo git log non registra tutti gli ultimi commit?Cosa fa git log --all do?

E cosa significa?

--all 
     Pretend as if all the refs in refs/ are listed on the command line as <commit>. 

Suppongo, una volta tradotto in un inglese semplice, che significhi mostrare tutti gli ultimi commit.

Qualcuno può chiarire.

risposta

5

No, questo non significa che mostri tutti gli ultimi commit. Mostra tutti i commit nella storia di rami, tag e altri refs, ma non mostra commit che non sono raggiungibili da nessun riferimento. Un tipico esempio di commit che non è raggiungibile da qualsiasi ref è quando hai appena eseguito git commit --amend: il commit precedente esiste ancora localmente, ma non è più raggiungibile e non verrà mostrato in git log --all. Ma git reflog confermerà che effettivamente esiste ancora.

Per quanto riguarda il motivo per cui --all non è l'impostazione predefinita: normalmente non lo si desidera. Ad esempio, se sei su un master di succursale ed esegui git log, in genere non sei interessato alla cronologia di qualsiasi branch di funzionalità, in genere desideri visualizzare la cronologia di master.

Se si desidera normalmente il comportamento --all, si consiglia di creare un alias.

1

Secondo un post qui git --all missing commit:

registro --all è solo per la quotazione impegna i referenziato in refs/(come i tag, le teste, ...)

La stessa pagina anche dice:

L'opzione --all non dice a git log di visualizzare tutti i commit. Richiede i log di tutti i refs, in pratica i tuoi rami e tag.

0

Perché voler vedere la cronologia di tutti i rami/ecc. non è così comune quando si lavora come voler vedere la cronologia di qualcosa di specifico, in genere il ramo corrente.

Suppongo, una volta tradotto in un inglese semplice, che significhi mostrare tutti gli ultimi commit.

No. ref/contiene cose come rami e tag. Se si desidera visualizzare la cronologia di un particolare ramo o di un particolare gruppo di diramazioni, elencarle nel comando git log. Se si desidera visualizzare la cronologia di tutti i rami/tag/ecc., È possibile utilizzare il collegamento --all.

Git log non mostra solo "gli ultimi commit": mostra tutti i commit che soddisfano i criteri indicati, di cui esistono diverse dimensioni. Ad esempio, su quali rami è attivo il commit, è il commit in un determinato intervallo, ecc.