Sobes.tech
Junior

Kuo skiriasi Git komandos pull ir fetch?

sobes.tech AI

Atsakymas iš AI

git fetch įkelia pakeitimus iš nuotolinio saugyklos, tačiau jų ne taiko į dabartinę šaką. git pull atlieka git fetch, o tada automatiškai (merge) sujungia gautus pakeitimus su dabartine šaka.

Pagrindiniai skirtumai:

Komanda Veiksmas Poveikis darbo kopijai / šakai
git fetch Įkelia objektus (komitus, failus) Nepakeičia darbo kopijos ar dabartinės šakos
git pull Įkelia objektus ir sujungia pakeitimus Atnaujina dabartinę šaką ir darbo kopiją

Pavyzdys:

Norėdami tiesiog pamatyti, kas pasikeitė nuotoliniame serveryje:

git fetch origin

(Keisti galima peržiūrint git log origin/<šaka>)

Norėdami gauti pakeitimus ir automatiškai juos taikyti dabartinėje šakoje:

git pull origin main # pavyzdžiui

git pull iš esmės yra lygiavertis git fetch ir git merge arba git rebase vykdymui (priklausomai nuo nustatymų).

# Lygiavertis `git pull`
git fetch origin
git merge origin/main # jei dabartinė šaka yra main ir naudojate merge kaip susijungimo strategiją

Naudojant git fetch suteikiama daugiau kontrolės, nes leidžia peržiūrėti įeinančius pakeitimus prieš juos sujungiant. git pull yra patogu greitam sinchronizavimui.