2011-09-30 12 views
54

Ho cercato per un argomento di interesse in un registro commit:Ottieni informazioni su un oggetto di commit SHA-1?

$ git log --pretty=oneline | grep -i ... 

$SHA1 < ... commit message ... > 

ora ho un SHA1, e voglio sapere le informazioni sui file che interessano che SHA1 e forse più tardi diff loro con i loro genitori. Come posso farcela?

risposta

85

git show <SHA1> mostrerà la data di commit, autore, padre e diff dei file modificati da commit padre.

4
git show --no-patch --oneline <SHA1> 
git show --no-patch <SHA1> 

Questa è una risposta a View a specific Git commit che non ha alcuna casella di risposta in quanto è stato contrassegnato come un duplicato di questo argomento. Alcune delle persone in cerca di una risposta alla domanda di cui sopra sono suscettibili di seguire il link e cercare una risposta qui.

Entrambe sono domande su come ottenere informazioni su un commit dal codice SHA1.

Alcuni di tempo in cui è stato identificato un commit dal suo codice SHA1, si vuole sapere tutto su di esso: tutti i file modificati, quali i cambiamenti reali sono ecc

L'altra questione è molto più specifica. Qualcuno aveva una linea sospetta di software in un file e l'aveva tracciata su un particolare codice SHA1 usando "git blame". Quindi volevano semplicemente sapere quale modifica del software in termini umani aveva introdotto quella linea. Non c'è alcun interesse a conoscere tutti gli altri file modificati, nessun interesse per ottenere un diff completo dei file, o anche di ottenere un diff di quel file. Si tratta semplicemente di sapere quale cambiamento ha introdotto una linea di codice.

Invece di informazioni come

c27feeaa9b2c6270ff559b21eaf9f1e0317676a7 

vogliamo informazioni come

Humanitarian Aid Feature 

o

Left handed Thread Fix 

Per fare questo, utilizzare

git show --no-patch --oneline <SHA1> 

dove git mostra --no-patch (ad es. con l'opzione --no-patch) è la chiave per rispondere alla domanda di eykanal View a specific Git commit

Usa

git show --no-patch <SHA1> 

se si vuole l'autore e la data informazioni troppo.

0

È inoltre possibile ottenere informazioni specifiche su un oggetto di commit (utilizzando SHA1) utilizzando il comando cat-file.

E.g. git cat-file -p <sha1>

Esempio di output:

$ git cat-file -p xxxx 
tree <sha1> 
parent <sha1> 
parent <sha1> 
author <author> 
committer <committer>  
... 
Problemi correlati