Vorrei controllare eventuali modifiche al codice dopo aver eseguito un file git pull
. Attualmente mi mostra solo quali file vengono modificati. Come posso vedere quale codice è cambiato?
Risposte:
git log --name-status -2
Ti mostrerà i nomi dei file che sono cambiati negli ultimi due commit.
git log -p -2
Ti mostreranno le modifiche stesse.
Prima di tirare
git fetch
git log --name-status origin/master..
Ti mostrerà quali commit stai per recuperare, insieme ai nomi dei file.
Puoi rivedere le modifiche come dice @iblue con fetch
e diff
prima dell'unione :
$ git fetch
$ git diff master...origin/master
Nota il punto triplo, che significa diff contro il genitore condiviso e l'origine / master (commit contrassegnati di x
seguito):
SP---o---o [master]
\
x---x [origin/master]
La primissima riga nell'output di un pull ha questo aspetto:
$ git pull
Updating 37b431a..b2615b4
...
Puoi quindi fare semplicemente:
$ git diff 37b431a..b2615b4
O qualunque altro comando:
$ git log --name-status 37b431a..b2615b4
Se è passato un po 'di tempo da quando hai eseguito il pull e desideri sapere quali modifiche sono state apportate dall'ultimo pull, puoi cercarlo con:
$ git reflog | grep -A1 pull | head -2
che mostrerà l'hash dopo il pull seguito dall'hash prima del pull:
b2615b4 HEAD@{0}: pull : Fast-forward
37b431a HEAD@{1}: checkout: moving from v6.1 to master
Puoi quindi fare la stessa cosa con questi due hash:
git diff 37b431a..b2615b4
Poiché git pull
è solo una scorciatoia per git fetch
e git merge
, puoi correre git fetch
a recuperare i rami dall'origine e quindi mostrare le differenze prima di unirli. 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 esegui su un ramo diverso dal master , dovresti ovviamente cambiare i nomi dei rami nei comandi sopra.
Puoi confrontare i contenuti estratti con le fonti del commit immediatamente precedente da,
git diff branch_name@{1}
per esempio:
git diff master@{1}
Per il confronto con le fonti di cui n si impegna
git diff branch_name@{n}
@{n}
sintassi in realtà indica la posizionenth
precedente del ramo / testa. Ad esempio, se ci sono stati 10 commit dall'ultima volta che hai eseguito un pull, farebbe riferimento alla posizione precedente di , che è 10 commit prima. Questo è il motivo per cui using è utile per controllare le modifiche dopo un pull. master@{1}
master
@{n}
Puoi controllare cosa cambia mentre spingi e tira da questo ...
git log --stat