Menu
Coddy logo textTech

Git Fetch vs Pull

Ostatnia aktualizacja

git fetch pobiera najnowsze commity z repozytorium zdalnego, ale zostawia twoją gałąź roboczą dokładnie w takim stanie, w jakim była. git pull pobiera to samo, a potem od razu scala te commity z bieżącą gałęzią. W skrócie: git pull = git fetch + git merge.

Używaj fetch, gdy chcesz najpierw się rozejrzeć; pull, gdy wszystko jest gotowe do integracji. Wypróbuj oba w terminalu online: prawdziwa powłoka w przeglądarce.

git fetch pobiera nowe commity i aktualizuje tylko origin/main, a twoja gałąź czeka; git pull od razu je scala.

Porównanie

Zachowaniegit fetchgit pull
Pobiera zdalne commityTakTak
Zmienia bieżącą gałąźNieTak
Może wywołać konflikty scalaniaNieTak
Odpowiadatylko pobraniufetch + merge

Składnia

PolecenieCo robi
git fetchPobiera wszystkie zdalne zmiany, bez scalania
git fetch origin mainPobiera tylko jedną gałąź z repozytorium zdalnego
git pullPobiera i scala z bieżącą gałęzią
git pull --rebasePobiera, potem przenosi twoje commity na wierzch przez rebase
git log HEAD..origin/mainPo fetch: pokazuje, co zostałoby scalone

Najczęstsze pytania o git fetch vs pull

Jaka jest różnica między git fetch a git pull?
git fetch pobiera nowe commity i aktualizuje gałęzie śledzące (takie jak origin/main), ale nie zmienia twojej gałęzi roboczej. git pull robi ten sam fetch, a potem scala nowe commity z bieżącą gałęzią. Pull zmienia więc twoje pliki; fetch tylko aktualizuje twoją wiedzę o repozytorium zdalnym.
Czy git pull to po prostu fetch plus merge?
Tak. git pull to skrót od git fetch, po którym następuje git merge pobranej gałęzi z bieżącą. Z git pull --rebase drugim krokiem jest rebase zamiast merge, co utrzymuje liniową historię.
Kiedy używać fetch zamiast pull?
Używaj git fetch, gdy chcesz przejrzeć przychodzące zmiany przed ich integracją, na przykład git fetch, a potem git log HEAD..origin/main, żeby zobaczyć dokładnie, co nowego. Używaj git pull, gdy ufasz zdalnym zmianom i chcesz je po prostu scalić ze swoją gałęzią.
Czy git fetch może wywołać konflikty?
Nie. Fetch aktualizuje tylko gałęzie śledzące; nigdy nie rusza twojej gałęzi roboczej ani plików, więc nie może wywołać konfliktów scalania. Konflikty pojawiają się dopiero na etapie scalania, który pull wykonuje automatycznie, a fetch nie.
Czy mogę to przećwiczyć online?
Tak. Otwórz terminal online i uruchom git fetch oraz git pull w prawdziwej powłoce w przeglądarce, bez żadnej instalacji. Darmowy interaktywny kurs Git w Coddy też krok po kroku omawia pracę z repozytoriami zdalnymi.
Ilustracja języków programowania w Coddy

Ucz się Gita z Coddy

ZACZNIJ