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.