Sobes.tech
Junior

Aký je rozdiel medzi príkazmi pull a fetch v Git?

sobes.tech AI

Odpoveď od AI

git fetch stiahne zmeny z oddaljeného repozitára, ale ich ne aplikuje na aktuálnu vetvu. git pull vykoná git fetch a potom automaticky zlúči (merge) stiahnuté zmeny s aktuálnou vetvou.

Kľúčové rozdiely:

Príkaz Akcia Vplyv na pracovnú kópiu / vetvu
git fetch Stiahne objekty (commit, súbory) Nemení pracovnú kópiu ani aktuálnu vetvu
git pull Stiahne objekty a zlúči zmeny Aktualizuje aktuálnu vetvu a pracovnú kópiu

Príklad použitia:

Chcete len vidieť, čo sa zmenilo na vzdialenom serveri:

git fetch origin

(Môžete skontrolovať zmeny pomocou git log origin/<vetva>)

Na získanie zmien a ich automatické použitie na aktuálnu vetvu:

git pull origin main # napríklad

git pull je v podstate ekvivalentné s vykonaním sekvenčne git fetch a git merge alebo git rebase (podľa nastavení).

# Ekvivalentné s git pull
git fetch origin
git merge origin/main # ak je aktuálna vetva main a používate merge ako stratégiu zlúčenia

Použitie git fetch poskytuje väčšiu kontrolu, pretože umožňuje prehliadnuť prichádzajúce zmeny pred ich zlúčením. git pull je vhodný pre rýchlu synchronizáciu.