Wie kann man Codeänderungen nach dem Git Pull sehen?

82

Ich möchte alle Codeänderungen überprüfen, nachdem ich a git pull. Derzeit zeigt es mir nur, welche Dateien sich ändern. Wie kann ich sehen, welcher Code geändert wurde?

uwe
quelle
Beziehen Sie sich darauf .
unrealsoul007

Antworten:

95
git log --name-status -2

Zeigt Ihnen die Namen der Dateien an, die sich in den letzten beiden Commits geändert haben.

git log -p -2

Zeigt Ihnen die Änderungen selbst.

Bevor Sie ziehen,

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

Zeigt Ihnen zusammen mit den Namen der Dateien, welche Commits Sie abrufen möchten.

Wayne Conrad
quelle
66

Vor dem Ziehen

Sie können Änderungen überprüfen, wie @iblue mit a fetchund diffvor dem Zusammenführen sagt :

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

Beachten Sie die dreifache Periode, was bedeutet, dass Sie sich von dem gemeinsam genutzten Elternteil und dem Ursprung / Master unterscheiden (Commits xunten markiert ):

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

Kurz nach einem Zug

Die allererste Zeile in der Ausgabe eines Pulls sieht folgendermaßen aus:

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

Sie können dann einfach tun:

$ git diff 37b431a..b2615b4

Oder was auch immer ein anderer Befehl:

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

Später

Wenn es eine Weile her ist, seit Sie gezogen haben, und Sie wissen möchten, welche Änderungen durch den letzten Zug vorgenommen wurden, können Sie nachschlagen mit:

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

Dies zeigt den Hash nach dem Ziehen, gefolgt vom Hash vor dem Ziehen:

b2615b4 HEAD@{0}: pull : Fast-forward
37b431a HEAD@{1}: checkout: moving from v6.1 to master

Mit diesen beiden Hashes können Sie dann dasselbe tun:

git diff 37b431a..b2615b4
Quornian
quelle
3
Dies ist die einzige Antwort, mit der Sie überprüfen können, welche Dateien sich beim letzten Abrufen geändert haben, wenn Sie sich nicht erinnern, wie viele Commits zu diesem Zeitpunkt abgerufen wurden.
Kremuwa
22

Da dies git pullnur eine Verknüpfung für git fetchund ist git merge, können Sie git fetchdie Zweige vom Ursprung abrufen und dann die Unterschiede anzeigen, bevor Sie sie zusammenführen. So was:

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

Wenn Sie in einem anderen Zweig als Master ausgeführt werden , sollten Sie natürlich die Zweignamen in den obigen Befehlen ändern.

iblue
quelle
1
`` `git diff - nur name master origin / master [path]` ``
jiacheo
8

Sie können den abgerufenen Inhalt mit den Quellen des unmittelbar vorherigen Commits vergleichen.

git diff branch_name@{1}

z.B:

git diff master@{1}

Zum Vergleich mit den Quellen n Commits dahinter,

git diff branch_name@{n}
Kasun
quelle
2
Dies ist eine gute Antwort, aber die Erklärung ist falsch: "Zum Vergleich mit den Quellen n Commits dahinter" . Die @{n}Syntax bedeutet tatsächlich die nthvorherige Position des Zweigs / Kopfes. Wenn beispielsweise seit dem letzten Ziehen 10 Commits aufgetreten sind, wird master@{1}auf die vorherige Position von verwiesen, dh master10 Commits zuvor. Aus diesem Grund ist die Verwendung @{n}nützlich, um Änderungen nach einem Ziehen zu überprüfen.
wisbucky
Dies ist die Antwort, nach der ich gesucht habe! Danke für die Erklärung @wisbucky
tamerlaha
5

Sie können überprüfen, was sich beim Drücken und Ziehen ändert ...

git log --stat
Sandip Karanjekar
quelle