Python vergleicht zwei Dateien

Der Befehl git diff zeigt die Unterschiede zwischen den Dateien in zwei Commits oder zwischen Ihrem aktuellen Repository und einem vorherigen Commit an. Dieser Befehl zeigt Änderungen an, die durch Header und Metadaten fur die geänderten Dateien gekennzeichnet sind.

Wenn Sie mit dem Versionskontrollsystem Git arbeiten, möchten Sie möglicherweise Daten in Ihrem Repository mit einem anderen vergleichen Datenquelle. Zum Beispiel möchten Sie vielleicht zwei verschiedene Commits oder zwei Dateien miteinander vergleichen.

Hier kommt die diff-Funktion ins Spiel. Diffing ist eine Funktion, die zwei Eingaben akzeptiert und die vorhandenen Änderungen anzeigt zwischen diesen Datenquellen. Diff-Funktionen können auf Branches, Dateien und Commits ausgefuhrt werden.

Dieses Tutorial behandelt mit Beispielen die Grundlagen des Diffing mit Git und die Verwendung des git diff-Befehls. Am Ende dieses Tutorials sind Sie ein Experte im Umgang mit dem Befehl git diff.

Befehl Git Diff

Der Befehl git diff zeigt die Unterschiede zwischen Dateien in zwei Commits an oder zwischen einem Commit und Ihrem aktuellen Repository. Sie können sehen, welcher Text in einer Datei hinzugefugt, entfernt und geändert wurde.

Hier ist die Syntax fur den Befehl git diff:

Standardmäßig zeigt der Befehl git diff alle nicht festgeschriebenen Änderungen an Ihrem Repository an.

Wir können die entfernten Zeilen aus unserer Originaldatei sowie alle Zeilen sehen, die zu unserer Originaldatei hinzugefugt oder geändert wurden. Git diff wird häufig zum Vergleichen von Branches in einem Git-Repository verwendet.

81 % der Teilnehmer gaben an, dass sie sich nach dem Besuch eines Bootcamps hinsichtlich ihrer Berufsaussichten im Tech-Bereich sicherer fuhlten. Lassen Sie sich noch heute in ein Bootcamp einweisen.

Der durchschnittliche Bootcamp-Absolvent verbrachte weniger als sechs Monate im Karriereubergang, vom Beginn eines Bootcamps bis zur Suche nach seinem ersten Job.

Sie können Dateien zwischen zwei vergleichen Git-Commits, indem Sie den Namen des Refs angeben, der sich auf die Commits bezieht, die Sie vergleichen möchten. Eine Referenz kann eine Commit-ID oder HEAD sein, die auf den aktuellen Branch verweist.

Lassen Sie uns zwei Commits in unserem Git-Repository vergleichen.

Dazu mussen Sie zuerst die ID der Commits abrufen, deren Dateien Sie vergleichen möchten. Sie können diese Aufgabe mit dem Befehl git log –pretty=oneline ausfuhren, der eine kurze Zusammenfassung aller Commits in einem Repository zuruckgibt:

Dieser Befehl gibt Folgendes zuruck:

Git Diff zwischen Branches

Um zwei Git-Branches mit dem Befehl diff zu vergleichen, geben Sie . an die beiden Branches, die Sie als Argumente vergleichen möchten. Sie mussen zwei Punkte zwischen jedem Branch-Namen verwenden. Diese Punkte zeigen an, dass Sie den neuesten Commit in jedem der Branches lesen und vergleichen möchten:

Angenommen, wir wollte den "master‚"-Zweig mit einem Zweig namens "dev-v0.9‚" in unserem Repository vergleichen. Wir konnten dies mit diesem Befehl tun:

Wenn dieser Befehl ausgefuhrt wird, wird ein Diff zwischen "master‚" und " dev-v0.9‚"-Zweig in unserer Codebasis.

Auf ähnliche Weise können Sie bestimmte Dateien in zwei verschiedenen Zweigen vergleichen Sie können also dieselbe Syntax wie oben verwenden und zusätzlich die Datei angeben, die Sie vergleichen möchten.

Angenommen, wir m√∂chten die Datei README.md in unserem "Master‚" und "dev-v0.9‚" Ge√§st. Wir k√∂nnten dies mit diesem Code tun:

Dies vergleicht die Datei README.md (die sich in unserem aktuellen Verzeichnis befindet, gekennzeichnet durch die "./‚"-Syntax) im "Master‚" und "dev-v0.9‚" Branches.

Beispiel fur einen Git-Diff-Befehl

Angenommen, wir haben ein leeres Repository initialisiert und möchten unser Repository mit einer README.md-Datei starten. Wir haben in unserem Repository eine Datei README.md erstellt, die den folgenden Satz enthält:

Dies ist ein Beispiel fur die Git-Diff-Funktion.

Dateien und Commits vorbereiten

Wir werden mit dieser Datei einen Commit mit dem Befehl git commit erstellen:

Damit können wir die Änderungen, die wir an unserem Repository vorgenommen haben, speichern. Der Befehl git gibt Folgendes zuruck:

Wenn wir den Befehl git diff zu diesem Zeitpunkt ausfuhren, passiert nichts. Dies liegt daran, dass unser Repository initialisiert wurde und es keine Änderungen zwischen Dateien in unserem Repository gibt. Da wir nun uber ein grundlegendes Repository verfugen, können wir den Inhalt der Dateien in unserem Repository ändern. Dadurch können wir den Befehl git diff in Aktion sehen.

Angenommen, wir m√∂chten den Satz ‚ÄûDiese Zeile haben wir gerade zu unserer Datei hinzugefugt‚" in die Datei README.md. Wir konnten dies mit diesem Befehl tun:

"Karriere-Karma trat in mein Leben ein, als ich es am dringendsten brauchte und half mir schnell, ein Bootcamp zu absolvieren. Zwei Monate nach meinem Abschluss fand ich meinen Traumjob, der meinen Werten entsprach und Ziele im Leben!"

Venus, Software Engineer bei Rockbot

Der obige Befehl fugt unseren Satz zur Datei README.md hinzu.

Das bedeutet, dass es jetzt einen Unterschied zwischen unserer ursprunglichen README.md-Datei und der aktuellen README.md-Datei in unserem Repository gibt.

Durch Ausfuhren des git diff-Befehls können wir sehen die Unterschiede zwischen diesen beiden Dateien. Standardmäßig erzeugt der Befehl git diff einen Diff fur alle Dateien zwischen dem letzten Commit und dem aktuellen Status des Repositorys.

Fuhren Sie einen Git-Diff zwischen den Commits aus

Wenn wir den Befehl ausfuhren, wird die folgende Antwort zuruckgegeben:

Dies ist ein Beispiel fur die Git diff-Funktion.

Dies ist ein typisches Ergebnis des git diff-Befehls. Unser Ergebnis zeigt, was hinzugefugt oder entfernt wurde in unsere Datei in einem kombinierten Diff-Format.

Der Befehl git diff gibt eine Liste aller Änderungen in allen Dateien zwischen unserem letzten Commit und unserem aktuellen Repository zuruck.

Wenn Sie möchten die an einer bestimmten Datei in einem Repository vorgenommenen Änderungen abrufen, können Sie diese Datei als dritten Parameter angeben. Angenommen, wir möchten nur die Änderungen sehen, die an der Datei README.md vorgenommen wurden.

In diesem Beispiel haben wir nur die Datei README.md geändert, sodass ohnehin nur diese Änderungen angezeigt werden. Wenn wir jedoch mit einem größeren Repository arbeiten, möchten wir möglicherweise nur die Änderungen in einer Datei vergleichen. Dazu könnten wir diesen Befehl verwenden:

Dieser Befehl ermöglicht es uns, unsere aktuelle Version der README.md-Datei mit der letzten in unserem Repository festgeschriebenen Version zu vergleichen.

Git-Diff-Aufschlusselung

Git-Diffs haben eine Zahl von Komponenten, die wir verwenden können, um die Änderungen zwischen einer Datei in einem Repository zu analysieren. Lassen Sie uns sie anhand unseres vorherigen Beispiels aufschlusseln.

Eingabedateien

Die erste Komponente unseres Diffs sind die Eingabedateien. Dieser Teil des Diffs sagt uns, welche Dateien im Diff verglichen werden.

Wir vergleichen die Datei README.md in der aktuellen Version unseres Codes mit der Datei README.md in der letzten Version unseres Code. Dies steht in der ersten Zeile unseres Codes:

Metadaten

Als nächstes enthält unser Diff die Metadaten fur unser Git-Repository. Diese Metadaten zeigen die von Git verwendeten Objektversionsbezeichnungen an, um die Änderungen zu verfolgen, die Sie an einer Datei vorgenommen haben.

Diese Informationen werden in den meisten Fällen des diff-Befehls selten verwendet. In unserem obigen Beispiel sehen die Metadaten so aus:

Marker ändern

Der nächste Teil der Git-Diff-Ausgabe ist der Änderungsmarkierungen. Diese Dateimustermarkierungen sagen uns, welche Art von Änderungen an unseren Dateien vorgenommen wurden. Die Änderungsmarkierungen fur unser obiges Beispiel sind:

Diese Markierungen sagen uns, dass Änderungen von a/README.md vorgenommen wurden (gekennzeichnet durch die Minuszeichen), die in b/README.md widergespiegelt werden (durch die Pluszeichen gekennzeichnet).

Codeänderungen

Schließlich gibt unser diff a . zuruck Liste der Änderungen an unserem Code. Im Gegensatz zu einem vollständigen Dateivergleich zeigen diffs nur die Abschnitte einer Datei an, die geändert wurden. In unserem Beispiel haben wir unserer Datei eine Zeile hinzugefugt, die das folgende Ergebnis liefert:

Die erste Zeile ist eine Zusammenfassung der an unserer Datei vorgenommenen Änderungen. Dies sagt uns, dass wir unserer Datei eine Codezeile (+1) hinzugefugt haben, beginnend mit der zweiten Zeile (2).

Dann wird uns eine Liste der vorgenommenen Änderungen angezeigt. Wie Sie sehen können, erscheint diese Zeile in unserem Diff, da wir die Zeile „Diese Zeile haben wir gerade zu unserer Datei hinzugefugt" hinzugefugt haben. Das Pluszeichen sagt uns, dass wir diese Zeile zur Datei hinzugefugt haben.

Schlussfolgerung

Diffing ist eine nutzliche Funktion in Git, mit der Sie zwei Dateien, Branches oder Commits in a . vergleichen können Git-Repository. Auf diese Weise können Sie sehen, welche Änderungen seit einem bestimmten Punkt in Ihrem Repository vorgenommen wurden.

In diesem Tutorial wurden die Grundlagen des Diffing mit Git und die Verwendung des git diff-Befehls zum Ausfuhren einer Diff-Operation behandelt. Jetzt sind Sie mit dem Wissen ausgestattet, das Sie benötigen, um den Befehl git diff wie ein Experte zu verwenden!

Weitere Lernressourcen zu Git finden Sie in unserem Anleitung zum Erlernen von Git.