2012-07-01 16 views
40

Desidero controllare eventuali modifiche al codice dopo aver eseguito git pull. Attualmente mi sta solo mostrando quali file cambiano. Come posso vedere quale codice è cambiato?Come vedere le modifiche al codice dopo git pull?

+0

Fare riferimento a [questo] (http://stackoverflow.com/questions/1362952/detail-change-after-git-pull). – unrealsoul007

risposta

40
git log --name-status -2 

Mostrerà i nomi dei file modificati per gli ultimi due commit.

git log -p -2 

Vi mostrerà le modifiche stesse.

prima di tirare,

git fetch 
git log --name-status origin/master.. 

vi mostrerà ciò che impegna che si sta per recuperare, insieme ai nomi dei file.

13

Perché git pull è solo una scorciatoia per git fetch e git merge, è possibile eseguire git fetch per andare a prendere i rami dall'origine e poi mostrare le differenze prima di fondersi. Come questo:

git fetch      # Load changes from remote server 
git diff master origin/master # Show differences 
git merge origin/master  # Merge remote changes with local changes 

Se si esegue su un ramo diverso rispetto maestro, si dovrebbe ovviamente modificare i nomi filiali nei comandi di cui sopra.

+0

'' 'git diff --name-only master origin/master [path]' '' – jiacheo

3

È possibile controllare quali cambiamenti ottenere mentre si spinge e si tira da questo ...

git log --stat 
26

Prima di tirare

Puoi esaminare le modifiche da @iblue dice con un fetch e diff prima della fusione:

$ git fetch 
$ git diff master...origin/master 

Nota il periodo tripla, il che significa che diff contro il genitore condiviso e origine/master (commit contrassegnato x di seguito):

SP---o---o [master] 
    \ 
    x---x [origin/master] 

Subito dopo un pull

La prima linea nella produzione di un pull si presenta così:

$ git pull 
Updating 37b431a..b2615b4 
... 

Si può poi semplicemente fare:

$ git diff 37b431a..b2615b4 

O qualsiasi altra cosa altro comando:

$ git log --name-status 37b431a..b2615b4 

seguito

Se è stato un po 'che avete tirato, e volete sapere quali cambiamenti sono stati portati nel dall'ultimo tiro, si può guardare in su con:

$ git reflog | grep -A1 pull | head -2 

che mostrerà l'hash dopo il pull seguito dal cancelletto prima del tiro:

b2615b4 [email protected]{0}: pull : Fast-forward 
37b431a [email protected]{1}: checkout: moving from v6.1 to master 

Si può quindi fare la stessa cosa con questi due hash:

git diff 37b431a..b2615b4 
+2

Questa è l'unica risposta che consente di verificare quali file sono stati modificati durante l'ultima estrazione quando non si ricorda quanti commit sono stati tirato in quel momento. – kremuwa

Problemi correlati