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.