git pull ist eine einfache und nützliche Möglichkeit, lokale Branches mit einem Remote-Repository zu synchronisieren. Es kombiniert die Schritte **Fetch** und **Merge** und hilft, die neuesten Änderungen im lokalen Repository zu integrieren. In Fällen, in denen mehr Kontrolle gewünscht ist, kann `git pull --rebase` oder eine separate Ausführung von `git fetch` und `git merge` nützlich sein.
Dieses Tutorial erklärt, was git pull ist, wie es funktioniert und wie es in verschiedenen Szenarien verwendet wird.
git pull?git pull ist ein Git-Befehl, der zwei Operationen kombiniert:
1. Fetch – Git holt die neuesten Änderungen aus einem Remote-Repository.
2. Merge – Git integriert die Änderungen in den aktuellen Branch des lokalen Repositories.
Mit anderen Worten: git pull ruft die neuesten Commits von einem Remote-Branch ab und versucht, sie automatisch mit dem aktuellen Branch zu verschmelzen (merge).
git pullDie grundlegende Syntax für den Befehl git pull lautet:
git pull <Remote-Repository> <Branch>
origin).main).main-Branch abrufengit pull origin main
In diesem Beispiel werden die neuesten Änderungen aus dem main-Branch des Remote-Repositories origin abgerufen und mit dem aktuellen Branch zusammengeführt.
git pull?Wie bereits erwähnt, führt git pull zwei Schritte aus: fetch und merge. Diese Schritte können auch separat ausgeführt werden, um mehr Kontrolle über den Prozess zu haben.
Mit git fetch werden die Änderungen aus dem Remote-Repository in das lokale Repository heruntergeladen, jedoch noch nicht in den aktuellen Branch integriert.
git fetch origin main
Dieser Befehl ruft die Änderungen aus dem main-Branch ab, integriert sie aber nicht. Die Änderungen werden in einem speziellen Bereich namens FETCH_HEAD gespeichert.
Nach dem Abrufen der Änderungen mit git fetch können die Änderungen manuell zusammengeführt (gemerged) werden:
git merge origin/main
Dieser Befehl führt die heruntergeladenen Änderungen aus dem main-Branch in den aktuellen Branch zusammen.
Wenn es keine Konflikte gibt, wird git pull die Änderungen automatisch zusammenführen. Es kann jedoch zu Merge-Konflikten kommen, wenn die lokalen Änderungen nicht mit den Änderungen im Remote-Repository übereinstimmen. In diesem Fall muss der Konflikt manuell gelöst werden.
Angenommen, nach dem Ausführen von git pull tritt ein Konflikt auf. Git wird in der Regel eine Fehlermeldung anzeigen und die betroffenen Dateien markieren. So wird ein Konflikt gelöst:
<<<<<<<, ======= und >>>>>>> hinzu, um die Konfliktstellen zu kennzeichnen.git add <DateienMitKonflikt>
git commit -m "Konflikt gelöst"
git pull ohne KonflikteWenn es keine lokalen Änderungen gibt oder die lokalen Änderungen vollständig mit den Remote-Änderungen übereinstimmen, wird git pull ohne Probleme ausgeführt und die Änderungen werden zusammengeführt. Das ist der häufigste Fall bei der täglichen Arbeit mit Git.
git pullgit pull
Wenn keine speziellen Remote-Repositories oder Branches angegeben werden, wird git pull die Änderungen aus dem Standard-Remote-Repository (meist origin) und dem aktuellen Branch abrufen.
git pull --rebaseEine Alternative zum Standard-Merge ist die Verwendung von git pull --rebase. Anstatt die Änderungen durch einen Merge zu integrieren, werden hier die lokalen Commits auf die neueste Version des Remote-Branchs „umgebogen“ (rebase).
git pull --rebasegit pull --rebase origin main
main-Branch angewendet, sodass keine zusätzlichen Merge-Commits entstehen. Das führt zu einer „saubereren“ Commit-Historie.Rebase ist besonders nützlich, um Merge-Commit-Spam zu vermeiden und eine lineare Historie beizubehalten.
git pull und git fetchgit fetch: Ruft die Änderungen aus dem Remote-Repository ab, ohne die Änderungen im aktuellen Branch zu integrieren.git pull: Ruft die Änderungen ab und führt sie direkt zusammen (Fetch + Merge).Verwendung von git fetch bietet mehr Kontrolle, da es ermöglicht, den Merge-Schritt manuell auszuführen und Änderungen vor dem Zusammenführen zu überprüfen.
git fetch und dann Mergegit fetch origin main # Änderungen abrufen
git log FETCH_HEAD # Änderungen prüfen
git merge origin/main # Änderungen zusammenführen
Ein praktischer Leitfaden für Git im Team-Alltag – mit vielen Tipps, Anwendungsbeispielen und einer Kommandoreferenz.
* Dies ist ein Affiliate-Link. Wenn du über diesen Link einkaufst, erhalte ich eine kleine Provision – für dich entstehen keine zusätzlichen Kosten.