Junior
Jaký je rozdíl mezi příkazy pull a fetch v Git?
sobes.tech AI
Odpověď od AI
git fetch stáhne změny z vzdáleného repozitáře, ale neaplikuje je na aktuální větev.
git pull provede git fetch a poté automaticky sloučí (merge) stažené změny s aktuální větví.
Klíčové rozdíly:
| Příkaz | Akce | Dopad na pracovní kopii / větev |
|---|---|---|
git fetch |
Stáhne objekty (commity, soubory) | Nemění pracovní kopii ani aktuální větev |
git pull |
Stáhne objekty a sloučí změny | Aktualizuje aktuální větev a pracovní kopii |
Příklad použití:
Chcete-li jen vidět, co se změnilo na vzdáleném serveru:
git fetch origin
(Změny lze zkontrolovat pomocí git log origin/<větev>)
Chcete-li získat změny a automaticky je aplikovat na aktuální větev:
git pull origin main # například
git pull je v podstatě ekvivalentní sekvenčnímu provedení git fetch a git merge nebo git rebase (podle nastavení).
# Ekvivalentní s git pull
git fetch origin
git merge origin/main # pokud je aktuální větev main a používáte strategii merge
Použití git fetch dává větší kontrolu, protože umožňuje před sloučením zkontrolovat příchozí změny. git pull je vhodný pro rychlou synchronizaci.