Git Fetch vs Pull
Zuletzt aktualisiert
git fetch lädt die neuesten Commits vom Remote herunter, lässt deinen Arbeitsbranch aber genau so, wie er war. git pull führt denselben Download durch und merged diese Commits dann sofort in deinen aktuellen Branch. Kurz gesagt: git pull = git fetch + git merge.
Nutze fetch, wenn du erst schauen willst, bevor du handelst; nutze pull, wenn du bereit bist zu integrieren. Probiere beides im Terminal-Playground aus - eine echte Shell in deinem Browser.
Nebeneinander
| Behavior | git fetch | git pull |
|---|---|---|
| Lädt Remote-Commits herunter | Ja | Ja |
| Ändert deinen aktuellen Branch | Nein | Ja |
| Kann Merge-Konflikte verursachen | Nein | Ja |
| Entspricht | nur herunterladen | fetch + merge |
Syntax
| Command | What it does |
|---|---|
git fetch | Lädt alle Remote-Änderungen herunter, ohne zu mergen |
git fetch origin main | Holt nur einen Branch von einem Remote |
git pull | Lädt herunter und merged in den aktuellen Branch |
git pull --rebase | Lädt herunter und rebased dann deine Commits obendrauf |
git log HEAD..origin/main | Nach dem Fetch: sieh, was du mergen würdest |
Git fetch vs pull FAQ
Was ist der Unterschied zwischen git fetch und git pull?
git fetch lädt neue Commits herunter und aktualisiert deine Remote-Tracking-Branches (wie origin/main), ändert aber nicht deinen Arbeitsbranch. git pull führt denselben Fetch durch und merged dann die neuen Commits in deinen aktuellen Branch. Pull ändert also deine Dateien; fetch aktualisiert nur dein Wissen über den Remote.Ist git pull einfach nur fetch plus merge?
Ja.
git pull ist die Kurzform für git fetch, gefolgt von einem git merge des geholten Branches in deinen aktuellen. Mit git pull --rebase ist der zweite Schritt ein Rebase statt eines Merge, was die Historie linear hält.Wann sollte ich fetch statt pull verwenden?
Nutze
git fetch, wenn du eingehende Änderungen prüfen willst, bevor du sie integrierst - zum Beispiel git fetch und dann git log HEAD..origin/main, um genau zu sehen, was neu ist. Nutze git pull, wenn du den Remote-Änderungen bereits vertraust und sie einfach in deinen Branch gemergt haben willst.Verursacht git fetch jemals Konflikte?
Nein. Fetch aktualisiert nur Remote-Tracking-Branches; es rührt niemals deinen Arbeitsbranch oder deine Dateien an, kann also keine Merge-Konflikte erzeugen. Konflikte entstehen nur beim Merge-Schritt - den pull automatisch durchführt, fetch aber nicht.
Kann ich das online üben?
Ja. Öffne den Terminal-Playground, um
git fetch und git pull in einer echten Shell in deinem Browser auszuführen - nichts zu installieren. Coddys kostenloser interaktiver Git-Kurs behandelt außerdem Schritt für Schritt die Arbeit mit Remotes.