Sobes.tech
Junior

Was ist der Unterschied zwischen den Befehlen pull und fetch in Git?

sobes.tech KI

Antwort von AI

git fetch lädt Änderungen aus einem entfernten Repository herunter, wendet sie aber nicht auf den aktuellen Zweig an. git pull führt ein git fetch aus und führt dann automatisch eine Zusammenführung (merge) der empfangenen Änderungen mit dem aktuellen Zweig durch.

Wichtige Unterschiede:

Befehl Aktion Einfluss auf die Arbeitskopie / Zweig
git fetch Lädt Objekte (Commits, Dateien) Ändert die Arbeitskopie oder den aktuellen Zweig nicht
git pull Lädt Objekte und führt Änderungen zusammen Aktualisiert den aktuellen Zweig und die Arbeitskopie

Anwendungsbeispiel:

Um nur zu sehen, was sich auf dem entfernten Server geändert hat:

git fetch origin

(Änderungen können mit git log origin/<zweig> überprüft werden)

Um Änderungen abzurufen und automatisch auf den aktuellen Zweig anzuwenden:

git pull origin main # zum Beispiel

git pull ist im Wesentlichen gleichbedeutend mit der sequenziellen Ausführung von git fetch und git merge oder git rebase (je nach Einstellung).

# Entspricht git pull
git fetch origin
git merge origin/main # wenn der aktuelle Zweig main ist und merge als Zusammenführungsstrategie verwendet wird

Die Verwendung von git fetch bietet mehr Kontrolle, da Sie eingehende Änderungen vor dem Zusammenführen überprüfen können. git pull ist bequem für eine schnelle Synchronisierung.