Git Fetch: Eine Meisterklasse

Veröffentlicht: 2023-02-26
Linux-Laptop mit einem Terminalfenster mit einem Globusmuster im Hintergrund und einem binären Wasserzeichen
fatmawati achmad zaenuri/Shutterstock.com
Der git fetch-Befehl ist wie ein git pull-Befehl, der Ihr lokales Repository mit Informationen und Commits aus dem Remote-Repository aktualisiert, ohne Ihre Arbeitsdateien zu überschreiben.

Mit dem Git- fetch -Befehl können Sie suchen, bevor Sie springen. Sie können feststellen, welche Änderungen an einem Remote-Repository vorgenommen wurden, ohne jedoch Ihre lokalen Dateien mit den Remote-Dateien zu überschreiben.

Inhaltsverzeichnis

Was ist git fetch und was macht es?
Git-Fetch vs. Pull
Synchronisieren Sie Ihre lokalen und Remote-Repositories mit git fetch
Alle abgerufenen Tags anzeigen
Machen Sie zuerst einen Trockenlauf
So rufen Sie einen einzelnen Zweig ab
Holen Sie alle Zweige
Vergleich von lokalen und entfernten Niederlassungen
Synchronisieren einer lokalen Verzweigung mit einer entfernten Verzweigung
Der halbtrainierte Welpe

Was ist git fetch und was macht es?

Der fetch Befehl in Git lädt Commits, Dateien und andere Informationen sicher von einem Remote-Repository in Ihr lokales Repository herunter. Verwenden Sie fetch, wenn Sie sehen möchten, welche Änderungen andere Entwickler vorgenommen haben, ohne gezwungen zu sein, die Änderungen zu akzeptieren. Ihre lokalen Dateien bleiben unberührt. Warum ist das wichtig?

Als Teil eines Entwicklungsteams muss man einen kühlen Kopf bewahren. Das Remote- oder zentrale Repository enthält Änderungen und neue Branches, die andere Entwickler erstellt und an das Remote-Repository gepusht haben.

Es ist durchaus möglich, dass jemand die Remote-Kopie von Dateien aktualisiert hat, die Sie lokal auf Ihrem Computer geändert haben. Wenn Sie beiläufig einen git pull durchführen, um Ihr lokales Repository zu aktualisieren, müssen Sie wahrscheinlich Zusammenführungen für Änderungen handhaben, die Sie möglicherweise nicht einmal möchten.

Sobald Sie die Informationen heruntergeladen haben, können Sie sie untersuchen und sehen, was die Änderungen sind. Auf diese Weise können Sie eine fundierte Entscheidung darüber treffen, was Sie gegebenenfalls jetzt zusammenführen möchten und was Sie auf später verschieben möchten.

Git-Fetch vs. Pull

Der Befehl git fetch verhält sich wie der Befehl git pull , jedoch ohne den Schritt, der Ihre lokalen Dateien überschreibt. Ihr lokales Repository wird aktualisiert und synchronisiert, aber die Änderungen werden nicht in den Arbeitszustand Ihres lokalen Repositorys geschrieben, sodass Ihre Dateien unberührt bleiben.

Oder anders ausgedrückt: Der Befehl git pull ist wie ein git fetch unmittelbar gefolgt von einem git merge .

Synchronisieren Sie Ihre lokalen und Remote-Repositories mit git fetch

Um alle aktualisierten Metadaten und Commits von einem Remote-Repository in Ihr lokales Repository abzurufen, verwenden Sie den Befehl git fetch mit dem Namen oder der URL des Remote-Repositorys. Standardmäßig heißt das erste Remote-Repository „origin“.

 git holt den Ursprung

Sie können das Wort „Ursprung“ weglassen, wenn Sie mit einem einzelnen Remote-Repository arbeiten.

 git holen 

Verwenden des Befehls git fetch im Standard-Remote-Repository

Dadurch werden alle Aktualisierungen aus dem „Ursprungs“-Repository abgerufen, aber die Änderungen werden nicht mit den Arbeitsdateien zusammengeführt. Wir können sehen, dass es einen neuen Zweig namens „new-branch“ gibt, der für uns abgerufen wurde.

Sobald Sie den Befehl fetch verwendet haben, können Sie die vollständige Liste der Zweige auf der Fernbedienung anzeigen, indem Sie die Option -r (Remote) mit dem Befehl branch verwenden.

 git branch -r 

Betrachten Sie die Zweige, die auf der Standardfernbedienung vorhanden sind

Dies listet alle Zweige auf, die der Remote bekannt sind und die sich nach dem fetch auch in Ihrem lokalen Repository befinden.

Alle abgerufenen Tags anzeigen

Ebenso können Sie die tag Option (beachten Sie, es ist „tag“ ohne „s“) verwenden, um die Liste der Tags anzuzeigen.

 git-Tag 

Verwenden des Befehls git tag zum Auflisten der Tags im lokalen Repository

VERWANDT: Wie man Git Remotes wechselt, hinzufügt und entfernt

Machen Sie zuerst einen Trockenlauf

Obwohl ein git fetch die Änderungen nicht in Ihre Arbeitsdateien zusammenführt, aktualisiert er dennoch Ihr lokales Repository. Wenn Sie sehen möchten, welche Änderungen der fetch vornimmt, ohne sie tatsächlich vorzunehmen, verwenden Sie die Option --dry-run .

 git fetch --dry-run 

Verwenden Sie die Option --dry-run, um die Änderungen anzuzeigen, die der Abrufbefehl abrufen würde

So rufen Sie einen einzelnen Zweig ab

Das Abrufen von Informationen über einen einzelnen Zweig ist einfach. Fügen Sie den Namen der Verzweigung zur Befehlszeile hinzu, um fetch mitzuteilen, dass Sie nur über diese eine Verzweigung Bescheid wissen müssen.

Hier weisen wir fetch an, den Zweig „mary-feature“ aus dem Remote-Repository „origin“ abzurufen.

 git holt Ursprung Mary-Feature 

Verwenden von git fetch zum Abrufen eines einzelnen Remote-Zweigs

Nachdem sich die Details und Inhalte des Remote-Branch in Ihrem lokalen Repository befinden, können Sie den Befehl git checkout verwenden, um einen neuen Branch zu erstellen und den Remote-Branch auszuchecken. Dadurch werden keine vorhandenen Dateien überschrieben, wenn Sie diesen Zweig zum ersten Mal verwenden.

 git checkout -b Mary-Funktion Ursprung/Mary-Funktion 

Sicheres Auschecken einer abgerufenen Remote-Verzweigung in eine neue lokale Verzweigung

Holen Sie alle Zweige

Wenn Sie mehrere Remotes verwenden, können Sie Zeit sparen, indem Sie alle Änderungen aus allen Branches zurück in Ihr lokales Repository ziehen, indem Sie die Option --all verwenden.

 git fetch --all

Vergleich von lokalen und entfernten Niederlassungen

Um zu sehen, wie sich die Dateien in einem entfernten Zweig von Ihren lokalen Kopien unterscheiden, verwenden Sie git fetch und dann den Befehl git log .

Beachten Sie, dass die lokalen und entfernten Zweige durch zwei Punkte „ .. “ getrennt sind. Die Option --oneline zeigt die Commit-ID und die Commit-Nachricht.

 git holen
 git log --oneline mary-feature..origin/mary-feature 

Verwenden von git zum Abrufen der Remote-Änderungen und git log zum Anzeigen der Änderungen

Die einzeilige Darstellung ist sinnvoll, wenn ein Zweig sehr viele Änderungen enthält. Um etwas mehr Informationen anzuzeigen, lassen Sie die Option --oneline weg.

 git log mary-feature..origin/mary-feature 

Weglassen der Option --oneline, damit git mehr Details für jeden Commit anzeigt

Dies zeigt uns die Uhrzeit und das Datum jedes Commit zusammen mit der Commit-Nachricht und den Kontaktdaten des Änderungsautors.

Synchronisieren einer lokalen Verzweigung mit einer entfernten Verzweigung

Wenn Sie sich entschieden haben, die Änderungen aus dem Remote-Zweig mit Ihren lokalen Arbeitsdateien zusammenzuführen, können Sie diese Befehle verwenden.

Wir checken den Branch aus, um sicherzustellen, dass wir arbeiten, es ist unser aktueller, funktionierender Branch.

 git checkout mary-feature 

Prüfung einer Filiale

Der Zweig wird für uns ausgecheckt und uns wird mitgeteilt, dass er sich hinter der Remote-Version befindet. Wir können git pull verwenden, um es zu aktualisieren, und dann git status um unseren Status zu überprüfen.

 git ziehen
 Git-Status 

Änderungen aus dem rmeote-Repository in das lokale ziehen

Wenn wir einige Änderungen an unseren lokalen Dateien vorgenommen haben, informiert uns Git beim Auschecken des Zweigs, dass wir einen git pull durchführen müssen, um eine Zusammenführung zu starten.

 git checkout mary-feature 

Git teilt uns mit, dass die lokalen und entfernten Brnahces voneinander getrennt sind und zusammengeführt werden müssen

Ein einfacher git pull startet den Prozess des Abrufens der Dateien und des Zusammenführens, oder wir können direkt eintauchen und git merge selbst verwenden. Wir beginnen damit, sicherzustellen, dass wir mit dem richtigen Zweig arbeiten

 git checkout mary-feature 

Git teilt uns mit, dass die lokalen und entfernten Brnahces voneinander getrennt sind und zusammengeführt werden müssen

Wir weisen git an, unseren aktuellen Zweig mit dem Zweig im Remote-Repository zusammenzuführen, es gibt sechs verschiedene Commits, die aufgelöst werden müssen.

Eine erfolgreiche Zusammenführungsnachricht

Wir müssen Git mitteilen, welchen entfernten Zweig wir zusammenführen möchten.

 git Merge Origin/Mary-Feature 

Verwenden von git merge, um die Remote-Änderungen in einem lokalen Zweig zusammenzuführen

Ein Editor wird geöffnet, damit wir eine Commit-Nachricht bereitstellen können. Wir können die vorgeschlagene Nachricht akzeptieren oder unsere eigene hinzufügen. Der Editor ist Ihr Standard-Editor, es sei denn, Git wurde für die Verwendung eines anderen Editors konfiguriert.

Bearbeiten der Commit-Nachricht

Speichern Sie Ihre Änderungen, wenn Sie fortfahren möchten. Die Zusammenführung wird automatisch fortgesetzt, wenn der Editor geschlossen wird.

Unsere Zusammenführung war erfolgreich, da es keine Konflikte gab.

Eine erfolgreiche Zusammenführungsnachricht

Konflikte entstehen, wenn dieselben Codezeilen von zwei oder mehr Entwicklern geändert werden. Wenn das der Fall ist, markiert Git die Konflikte in der betroffenen Datei. Sie müssen sie der Reihe nach überprüfen und auswählen, welche Änderung beibehalten werden soll.

Der halbtrainierte Welpe

Genau wie ein Welpe im Training wird fetch das abrufen, wonach Sie fragen, aber es wird es nicht fallen lassen. Wenn Sie wirklich wollen, was der Welpe Ihnen gezeigt hat, müssen Sie pull .

VERWANDT: Git-Rebase: Alles, was Sie wissen müssen