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?


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.


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

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.


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}

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.