GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Git Fetch:Definition &Beispiele

Einführung

Der git fetch Der Befehl lädt Objekte auf den lokalen Computer herunter, ohne vorhandenen lokalen Code im aktuellen Zweig zu überschreiben. Der Befehl ruft eine Aufzeichnung der Änderungen des entfernten Repositorys ab, die einen Einblick in den Fortschrittsverlauf vor Anpassungen ermöglicht.

Lesen Sie weiter, um zu erfahren, wie Sie git fetch verwenden Befehl durch praktische Beispiele.

Voraussetzungen

  • Git installiert, aktualisiert und konfiguriert.
  • Zugriff auf die Befehlszeile/das Terminal.
  • Ein Remote-Repository-Link oder ein Git-Remote konfiguriert.

Was ist Git-Fetch?

Der git fetch Der Befehl ruft Commits, Dateien, Branches und Tags aus einem Remote-Repository ab. Die allgemeine Syntax für Befehle lautet:

git fetch <options> <remote name> <branch name>

Git isoliert den abgerufenen Inhalt vom lokalen Code. Daher bietet der Abruf eine sichere Möglichkeit, die Informationen zu überprüfen, bevor Sie sich an Ihre lokale Zweigstelle binden.

Wie funktioniert der Befehl git fetch?

Der git fetch Der Befehl ruft alle Änderungen aus einem Remote-Repository ab. Die abgerufenen Metadaten befinden sich in .git Verzeichnis, während das Arbeitsverzeichnis unverändert bleibt.

Effektiv git fetch ruft die Metadaten ab, ohne Änderungen lokal anzuwenden. Der Befehl git pull kombiniert git fetch und git verschmelzen Funktionen zu einer.

Da der Status des Arbeitsverzeichnisses davon unberührt bleibt, müssen die abgerufenen Inhalte mit dem Befehl git checkout ausgecheckt oder mit git merge zusammengeführt werden.

Da das Verbinden von Inhalten jedoch ein manueller Prozess ist, git fetch ermöglicht das Überprüfen des Codes, bevor etwas geändert wird. Der Überprüfungsprozess hilft, Zusammenführungskonflikte zu vermeiden.

Git-Fetch-Optionen

Nachfolgend finden Sie eine Liste mit häufig verwendeten Optionen bei der Arbeit mit git fetch :

  • --all - Alle Fernbedienungen abrufen.
  • --append (-a ) - Hängt an vorhandene abgerufene Inhalte an, ohne zu überschreiben.
  • --depth=<depth> - Beschränken Sie sich auf eine bestimmte Anzahl von Commits, beginnend mit der Spitze jedes Remote-Branch-Verlaufs.
  • --deepen=<depth> - Begrenzung auf eine bestimmte Anzahl von Commits, beginnend mit der aktuellen Grenze jedes Remote-Branch-Verlaufs bis zur Spitze.
  • --shallow-since=<date> - Alle erreichbaren Commits nach dem angegebenen Datum einschließen.
  • --shallow-exclude=<revision> – Schließt Commits von einem angegebenen Remote-Zweig oder -Tag aus. Verwenden Sie die Option mehrmals, um mehrere Ausschlüsse anzugeben.
  • --dry-run - Die jedem Befehl hinzugefügte Option zeigt, was passiert, wenn der Befehl nicht als Demo ausgeführt wird.
  • --multiple – Lässt mehrere <repository or group> zu Argumente.
  • --no-tags - Automatisches Tag-Following deaktivieren.
  • --tags - Alle Tags von einer Fernbedienung abrufen.
  • --set-upstream - Upstream-Tracking hinzufügen.

Um alle verfügbaren Optionen anzuzeigen, führen Sie den folgenden Befehl im Terminal aus:

git fetch --help

Der Befehl zeigt die vollständige Hilfeseite mit einer detaillierten Beschreibung aller verfügbaren Optionen.

Git-Repositories abrufen

Die Beispiele erfordern ein hinzugefügtes Remote-Repository. Wenn Sie bereits eine Fernbedienung eingerichtet haben, fahren Sie mit dem nächsten Abschnitt fort. Andernfalls fügen Sie eine Git-Fernbedienung hinzu, indem Sie die folgenden Schritte ausführen:

1. Öffnen Sie das Terminal und erstellen Sie ein Verzeichnis für das Projekt:

mkdir <directory name>

2. Rufen Sie das Verzeichnis mit cd auf Befehl:

cd <directory name>

3. Initialisieren Sie das lokale Repository mit:

git init

4. Verwenden Sie den folgenden Befehl, um dem lokalen Repository eine Remote-URL hinzuzufügen:

git remote add <short remote name> <remote URL>

Zum Beispiel:

git remote add origin [email protected]:phoenixNAP-KB/test.git

5. Bestätigen Sie, dass die Fernbedienung erfolgreich hinzugefügt wurde:

git remote -v

Folgen Sie den Beispielen in den Abschnitten unten, um zu sehen, wie der git fetch Befehl funktioniert für verschiedene Anwendungsfälle.

Ein Remote-Repository abrufen

Die einfachste Art, den git fetch zu verwenden Befehl ist, ein entferntes Repository abzurufen:

git fetch <remote name>

Zum Beispiel:

git fetch origin

Die Ausgabe zeigt, dass der Befehl alle Inhalte aus dem Remote-Repository abgerufen hat, einschließlich Branches und Tags.

Listen Sie alle abgerufenen entfernten Branches auf mit:

git branch -r

Um alle abgerufenen Tags aufzulisten, führen Sie Folgendes aus:

git tag

Verwenden Sie den Befehl git checkout, um die Inhalte lokal für einen neuen Zweig verfügbar zu machen, oder verwenden Sie git merge, um lokale Repository-Informationen zu synchronisieren.

Einen bestimmten Zweig abrufen

Führen Sie diesen Befehl aus, um einen bestimmten Zweig aus einem Repository abzurufen:

git fetch <remote name> <branch name>

Zum Beispiel, um einen Branch namens test abzurufen vom Ursprung , ausführen:

git fetch origin test

Der Befehl ruft nur den Inhalt für den spezifischen Zweig ab. Um den abgerufenen Inhalt in einen neuen Zweig auszuchecken, führen Sie Folgendes aus:

git checkout -b test_branch origin/test

Die Inhalte sind nun lokal im Branch test_branch verfügbar .

Alle Branches von allen Remotes abrufen

In Fällen, in denen mehrere Remotes vorhanden sind, git fetch bietet einen Befehl zum Abrufen von Informationen von allen Fernbedienungen.

Führen Sie Folgendes aus, um alle Fernbedienungen anzuzeigen:

git remote

Holen Sie sich den gesamten Inhalt von allen Fernbedienungen mit:

git fetch --all

Die Ausgabe zeigt den Abrufprozess aus allen entfernten Repositories.

Synchronisieren Sie das lokale Repository

Verwenden Sie den git fetch Befehl mit git merge, um das lokale Repository zu synchronisieren. Befolgen Sie die nachstehenden Schritte, um zu sehen, wie das Beispiel funktioniert:

1. Holen Sie sich das entfernte Repository mit:

git fetch <remote name>

2. Vergleichen Sie den lokalen Zweig mit dem Remote-Zweig, indem Sie die Commit-Unterschiede auflisten:

git log --oneline <local branch>..<remote name>/<remote branch name>

Zum Beispiel, wenn die lokale Verzweigung test_branch ist und die Fernbedienung ist bei Ursprung/Test , listet der folgende Befehl die Unterschiede auf:

git log --oneline test_branch..origin/test

Die Ausgabe listet die Commits und die zugehörigen Nachrichten auf.

3. Checken Sie den lokalen Branch aus, in dem die Änderungen zusammengeführt werden sollen:

git checkout <local branch>

Zum Beispiel:

git checkout test_branch

4. Synchronisieren Sie den lokalen Zweig mit dem Befehl git merge:

git merge origin/main

Die Inhalte sind jetzt mit dem Remote-Repository auf dem neuesten Stand. Wenn eine Konfliktwarnung angezeigt wird, folgen Sie unserem Tutorial, um die Zusammenführungsprobleme zu beheben:So lösen Sie Zusammenführungskonflikte in Git.

git fetch Vs. git pull

Die folgende Tabelle zeigt, wie der git fetch und git Pull-Befehle vergleichen.

git fetch git pull
Lädt neue Informationen aus einem entfernten Repository herunter, ohne mit dem aktuellen Zweig zusammenzuführen. Lädt alle Änderungen aus einem Remote-Repository herunter und führt sie in den aktuellen Zweig ein.
Aktualisiert die Repository-Daten in der .git Verzeichnis. Aktualisiert das lokale Repository direkt.
Ermöglicht das Überprüfen von Commits und Änderungen von anderen Entwicklern, bevor der Code übergeben wird. Ermöglicht das sofortige Einbringen und Aktualisieren von Änderungen in das lokale Repository.
Keine Möglichkeit von Zusammenführungskonflikten beim Ausführen des Befehls. Mögliche Zusammenführungskonflikte, die eine sofortige Lösung erfordern.

Von den beiden Befehlen git fetch ist die sicherere Option beim Abrufen von Codeänderungen aus einem entfernten Repository.


Ubuntu
  1. So benennen Sie einen lokalen und entfernten Git-Zweig um

  2. SCP-Befehl in Linux:Verwendung mit Beispielen

  3. Git Remote Add mit einem anderen SSH-Port (nicht 22)

  4. So benennen Sie Git Branch Local und Remote um

  5. Überprüfen Sie, ob das lokale Git-Repo vor/hinter dem Remote liegt

SSH-Befehle in Linux mit Verwendungsbeispielen

So konfigurieren Sie ein Remote-Git-Repo unter Debian 11

So entfernen Sie das Git-Remote-Repository

So richten Sie ein Git-Repository mit Plesk ein

So klonen Sie ein Git-Repository mit Ansible

So konfigurieren und verwalten Sie ein Remote-Git-Repository unter Linux