Git Fetch: Eine Meisterklasse
Veröffentlicht: 2023-02-26 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.
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
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
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
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
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
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
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
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
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
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
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
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
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.
Wir müssen Git mitteilen, welchen entfernten Zweig wir zusammenführen möchten.
git Merge Origin/Mary-Feature
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.
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.
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