Sobes.tech
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.