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.