Git Fetch: Eine Meisterklasse


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.

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

Was ist git fetch und was macht es?

Der fetch Der Befehl in Git lädt Commits, Dateien und andere Informationen aus einem Remote-Repository sicher 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 a git pull 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 git fetch Befehl verhält sich wie der git pull Befehl aber ohne der 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: die git pull Befehl ist wie a git fetch unmittelbar gefolgt von a 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 die git fetch Befehl mit dem Namen oder der URL des Remote-Repositorys. Standardmäßig heißt das erste Remote-Repository „origin“.

git fetch origin

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

git fetch

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 die verwendet haben fetch Befehl können Sie die vollständige Liste der Zweige auf der Fernbedienung anzeigen, indem Sie verwenden -r (remote) Option mit dem Verzweigungsbefehl.

git branch -r

Betrachten Sie die Zweige, die auf der Standardfernbedienung vorhanden sind

Dies listet alle Zweige auf, die die Fernbedienung kennt, die nach dem fetch befinden sich ebenfalls in Ihrem lokalen Repository.

Alle abgerufenen Tags anzeigen

Ebenso können Sie die verwenden tag Option (beachten Sie, es ist „Tag“ ohne „s“), 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 a git fetch führt die Änderungen nicht in Ihre Arbeitsdateien ein, sondern aktualisiert weiterhin Ihr lokales Repository. Wenn Sie sehen möchten, was sich ändert fetch Befehl ausführen, ohne sie tatsächlich zu machen, verwenden Sie die --dry-run Möglichkeit.

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. Hinzufügen den Namen der Verzweigung an die Kommandozeile zu sagen fetch Sie müssen nur über diesen einen Zweig Bescheid wissen.

Hier, wir erzählen fetch um den Branch „mary-feature“ aus dem Remote-Repository „origin“ abzurufen.

git fetch origin mary-feature

Verwenden von git fetch zum Abrufen eines einzelnen Remote-Zweigs

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

git checkout -b mary-feature origin/mary-feature

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

Holen Sie alle Zweige

Wenn du bist 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 verwenden --all Möglichkeit.

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 dann verwenden Sie die git log Befehl.

Beachten Sie, dass die lokalen und entfernten Zweige zwei Punkte haben „..“, sie zu trennen. Der --oneline Option zeigt die Commit-ID und die Commit-Nachricht.

git fetch
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 zu sehen, lassen Sie das weg --oneline Möglichkeit.

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 benutzen git pull um es dann zu aktualisieren git status um unseren Status zu überprüfen.

git pull
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 eine ausführen müssen git pull 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

Eine einfache git pull startet den Prozess des Abrufens der Dateien und des Zusammenführens, oder wir können direkt eintauchen und verwenden git merge selbst. 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 werden es erzählen git Um unseren aktuellen Zweig mit dem Zweig im Remote-Repository zusammenzuführen, müssen sechs verschiedene Commits aufgelöst werden.

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 Der 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

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

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



source-107

Leave a Reply