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
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
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
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
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
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
Holen Sie alle Zweige
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
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
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 benutzen git pull
um es dann zu aktualisieren git status
um unseren Status zu überprüfen.
git pull
git status
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
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
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.
Wir müssen Git mitteilen, welchen entfernten Zweig wir zusammenführen möchten.
git merge origin/mary-feature
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
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