Nach einem Git-Pull gibt die Ausgabe eine Zusammenfassung des Änderungsbetrags.
Wie kann ich jede oder einige der detaillierten Detailänderungen der Dateien sehen?
Okay, hier ist meine Frage an Jefromi:
Woher weiß ich, ob ich zum Meister gezogen habe? Alles was ich getan habe ist "git pull".
Worauf weist Master hin und was ist der Unterschied zwischen Master und HEAD, den beiden Standardköpfen von Git?
Wie sehe ich die detaillierte Änderung in einer bestimmten Datei?
Wie sehe ich die Änderung in der Zusammenfassungsausgabe bis zum letzten
git pull
Mal wieder?Was ist der Unterschied zwischen
git diff
undgit whatchanged
?
git diff
eindeutig ein Diff ausgegeben, währendgit whatchanged
eindeutig eine Liste von Festschreibungsinformationen ausgegeben wird, die jeweils eine Liste der geänderten Dateien enthalten.Antworten:
Angenommen, Sie ziehen, um zu meistern. Sie können auf die vorherige Position von
master
by verweisenmaster@{1}
(oder sogar aufmaster@{10.minutes.ago}
den Abschnitt über die Angabe von Revisionen auf der Manpage git-rev-parse ), damit Sie Dinge wie tun könnenAlle Änderungen anzeigen:
git diff master@{1} master
Siehe die Änderungen an einer bestimmten Datei:
git diff master@{1} master <file>
Alle Änderungen in einem bestimmten Verzeichnis anzeigen:
git diff master@{1} master <dir>
Siehe die Zusammenfassung der Änderungen noch einmal:
git diff --stat master@{1} master
Was Ihre Frage betrifft: "Woher weiß ich, ob ich auf dem Master bin?" Nun, die Verwendung von Zweigen ist ein wichtiger Teil des Git-Workflows. Sie sollten immer wissen, in welchem Zweig Sie sich befinden - wenn Sie Änderungen vorgenommen haben, möchten Sie sie in den richtigen Zweig ziehen! Mit dem Befehl können Sie eine Liste aller Zweige mit einem Sternchen neben dem aktuell ausgecheckten anzeigen
git branch
. Der aktuelle Filialname wird zusammen mit der Ausgabe von gedrucktgit status
. Ich empfehle dringend, die Manpages der zu verwendenden Befehle zu überfliegen - dies ist eine großartige Möglichkeit, langsam etwas Wissen zu sammeln.Und Ihre letzte Frage:
HEAD
ist der Name für den aktuell ausgecheckten Zweig. Sie können zwar auchHEAD
undHEAD@{1}
in diesem Zusammenhang auch verwenden, aber es ist etwas robuster, die Zweige zu verwenden, da Sie einen anderen Zweig auschecken müssen.HEAD
ist jetzt dieser zweite Zweig undHEAD@{1}
ist jetztmaster
- nicht was du willst!Um zu vermeiden, dass Sie viele kleine Fragen wie diese stellen müssen, sollten Sie sich wahrscheinlich ein Git-Tutorial ansehen. Es gibt eine Million im Web, zum Beispiel:
quelle
git diff master@{1} master
Andernfalls wird die Änderung "rückwärts" angezeigt, dh Einfügungen werden zu Löschungen usw.git diff master@{1} master
hat nicht für mich gearbeitet, sonderngit diff master~1 master
für mich.git reflog master
was zu verstehen.fatal: ambiguous argument 'firstDesign@': unknown revision or path not in the working tree.
Ich bekomme immer wieder diesen Fehler. Obwohl Git Reflog FirstDesign diese Ausgabe hat .Angenommen, Sie machen einen Git-Pull wie folgt:
Anhand der Versionsnummern können Sie den Unterschied erkennen, der sich geändert hat:
quelle
git diff --stat a407564..9f52bed
" oder nur für eine Zusammenfassung "git diff --summary a407564..9f52bed
" erhaltenDer Befehl selbst funktioniert folgendermaßen:
und bezieht sich standardmäßig auf den aktuellen Zweig. Sie können Ihre Filialen mit überprüfen
Dadurch werden Ihre lokalen und Remote-Zweige aufgelistet, wie z. B. (
---
Als Teiler zwischen lokal und Remote hinzugefügt , um dies klarer zu machen)Wenn Sie sich dann ein Remote-Repo ansehen, werden Sie sehen, worauf Sie sich beziehen:
wird wie folgt aufgelistet:
Es ist also ziemlich einfach, sicher zu sein, woher man zieht und wohin man schiebt.
Der einfachste und eleganteste Weg (imo) ist:
Auf diese Weise erhalten Sie zwei Informationsblöcke über die Änderungen zwischen Ihrem letzten Zug und dem aktuellen Arbeitsstatus. Beispielausgabe (Ich habe einen
---
als Teiler zwischen--stat
und--dirstat
Ausgabe hinzugefügt , um es klarer zu machen):quelle
Dieser Weg ist etwas hackig, aber Sie können damit grafische Tools wie
gitk
odergitg
oder verwendengit-gui
:Die Antwort mit den meisten Upvotes gibt den besten Weg mit dem Git-Tool, aber ich verwende diese Methode, weil ich dann Tools mit GUI verwenden kann, um die Änderungen zu sehen: P.
Ich hätte dann den zusätzlichen Schritt, ein
git checkout .
und danngit pull
erneut auszuführen, damit ich richtig ziehen und zusammenführen kann, aber ich schätze die Fähigkeit, Unterschiede in einer GUI genug zu untersuchen, um die zusätzlichen zwei Schritte zu bewältigen.quelle