Sobes.tech
Junior

Jaka jest różnica między poleceniami pull i fetch w Git?

sobes.tech AI

Odpowiedź od AI

git fetch pobiera zmiany z zdalnego repozytorium, ale nie stosuje ich do bieżącej gałęzi. git pull wykonuje git fetch, a następnie automatycznie łączy (merge) pobrane zmiany z bieżącą gałęzią.

Kluczowe różnice:

Polecenie Działanie Wpływ na kopię roboczą / gałąź
git fetch Pobiera obiekty (commity, pliki) Nie zmienia kopii roboczej ani bieżącej gałęzi
git pull Pobiera obiekty i łączy zmiany Aktualizuje bieżącą gałąź i kopię roboczą

Przykład użycia:

Aby po prostu zobaczyć, co zmieniło się na zdalnym serwerze:

git fetch origin

(Możesz sprawdzić zmiany za pomocą git log origin/<gałąź>)

Aby pobrać zmiany i automatycznie zastosować je do bieżącej gałęzi:

git pull origin main # na przykład

git pull jest w zasadzie równoważny wykonywaniu kolejno git fetch i git merge lub git rebase (w zależności od ustawień).

# Równoważne z git pull
git fetch origin
git merge origin/main # jeśli bieżąca gałąź to main i używasz strategii merge

Użycie git fetch daje większą kontrolę, ponieważ pozwala przejrzeć nadchodzące zmiany przed ich scaleniem. git pull jest wygodny do szybkiej synchronizacji.