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?
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:
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.
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 ...
Antworten:
Zeigt Ihnen die Namen der Dateien an, die sich in den letzten beiden Commits geändert haben.
Zeigt Ihnen die Änderungen selbst.
Bevor Sie ziehen,
Zeigt Ihnen zusammen mit den Namen der Dateien, welche Commits Sie abrufen möchten.
quelle
Vor dem Ziehen
Sie können Änderungen überprüfen, wie @iblue mit a
fetch
unddiff
vor dem Zusammenführen sagt :Beachten Sie die dreifache Periode, was bedeutet, dass Sie sich von dem gemeinsam genutzten Elternteil und dem Ursprung / Master unterscheiden (Commits
x
unten markiert ):Kurz nach einem Zug
Die allererste Zeile in der Ausgabe eines Pulls sieht folgendermaßen aus:
Sie können dann einfach tun:
Oder was auch immer ein anderer Befehl:
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:
Dies zeigt den Hash nach dem Ziehen, gefolgt vom Hash vor dem Ziehen:
Mit diesen beiden Hashes können Sie dann dasselbe tun:
quelle
Da dies
git pull
nur eine Verknüpfung fürgit fetch
und istgit merge
, können Siegit fetch
die Zweige vom Ursprung abrufen und dann die Unterschiede anzeigen, bevor Sie sie zusammenführen. So was:Wenn Sie in einem anderen Zweig als Master ausgeführt werden , sollten Sie natürlich die Zweignamen in den obigen Befehlen ändern.
quelle
Sie können den abgerufenen Inhalt mit den Quellen des unmittelbar vorherigen Commits vergleichen.
z.B:
Zum Vergleich mit den Quellen n Commits dahinter,
quelle
@{n}
Syntax bedeutet tatsächlich dienth
vorherige Position des Zweigs / Kopfes. Wenn beispielsweise seit dem letzten Ziehen 10 Commits aufgetreten sind, wirdmaster@{1}
auf die vorherige Position von verwiesen, dhmaster
10 Commits zuvor. Aus diesem Grund ist die Verwendung@{n}
nützlich, um Änderungen nach einem Ziehen zu überprüfen.Sie können überprüfen, was sich beim Drücken und Ziehen ändert ...
quelle