Come mostrare cosa ha fatto un commit?


265

Un modo stupido che conosco è:

git diff commit-number1 commit-number2

un modo migliore?

Voglio dire, voglio conoscere il commit1 stesso, non voglio aggiungere il commit2 prima di esso come parametro.


14
Mentre "git show <commit>" è la soluzione corretta, è possibile utilizzare "git diff <commit> ^!" per ottenere la differenza tra commit e il suo (primo) genitore. Vedi man git-rev-parse (1) per i dettagli.
Jakub Narębski,

Puntelli a @Jakub: git diff <commit>^!è la risposta, IMHO. È quello che vedi in visualizzazione commit su github.com
Chris,

Risposte:



63

fa

$ git log -p

fai quello che ti serve?

Controlla il capitolo su Git Log nel Git Community Book per altri esempi. (O guarda la documentazione .)

Aggiornamento: Come già sottolineato da altri ( Jakub e Bombe ): sebbene quanto sopra funzioni, git show è in realtà il comando che ha lo scopo di fare esattamente ciò che è stato richiesto.


51

TL; DR

git show <commit>


Mostrare

Per mostrare cosa ha fatto un commit con le statistiche:

git show <commit> --stat

Login

Per mostrare il registro di commit con le differenze introdotte per ciascun commit in un intervallo:

git log -p <commit1> <commit2>

Che cosa è <commit>?

Ogni commit ha un ID univoco a cui facciamo riferimento qui <commit> . L'ID univoco è un hash SHA-1: un checksum del contenuto che stai memorizzando più un'intestazione. #TMI

Se non conosci il tuo <commit>:

  1. git logper visualizzare la cronologia di commit

  2. Trova l'impegno che ti interessa.


22

Ho scoperto che "git show --stat" è il migliore di tutti qui, ti dà un breve riassunto del commit, quali file hai aggiunto e modificato senza darti un sacco di cose, specialmente se hai cambiato molti file .


6

Questo è un modo che conosco. Con git, sembra che ci sia sempre più di un modo per farlo.

git log -p commit1 commit2
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.