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.
Porównanie
| Zachowanie | git fetch | git pull |
|---|---|---|
| Pobiera zdalne commity | Tak | Tak |
| Zmienia bieżącą gałąź | Nie | Tak |
| Może wywołać konflikty scalania | Nie | Tak |
| Odpowiada | tylko pobraniu | fetch + merge |
Składnia
| Polecenie | Co robi |
|---|---|
git fetch | Pobiera wszystkie zdalne zmiany, bez scalania |
git fetch origin main | Pobiera tylko jedną gałąź z repozytorium zdalnego |
git pull | Pobiera i scala z bieżącą gałęzią |
git pull --rebase | Pobiera, potem przenosi twoje commity na wierzch przez rebase |
git log HEAD..origin/main | Po 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?
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.