Sobes.tech
Junior

Ի՞նչ է տարբերությունը Git-ում pull և fetch հրամանների միջև։

sobes.tech AI

Պատասխան AI-ից

git fetch բեռնում է փոփոխությունները հեռավոր պահոցից, բայց դրանք չի կիրառում ընթացիկ ճյուղի վրա: git pull կատարում է git fetch, ապա ավտոմատ կերպով միավորում (merge) ստացված փոփոխությունները ընթացիկ ճյուղի հետ:

Հիմնական տարբերությունները՝

Կոմանդա Գործողություն Կերպարումը աշխատանքային պատճենում / ճյուղում
git fetch Բեռնում է օբյեկտներ (կոմիտներ, ֆայլեր) Չփոխում է աշխատանքային պատճենը կամ ընթացիկ ճյուղը
git pull Բեռնում է օբյեկտներ և միավորում փոփոխությունները Թարմացնում է ընթացիկ ճյուղը և աշխատանքային պատճենը

Օգտագործման օրինակ՝

Պարզապես տեսնելու համար, թե ինչ է փոխվել հեռավոր սերվերում՝

git fetch origin

(Փոփոխությունները ստուգելու համար՝ git log origin/<ճյուղ>)

Փոփոխությունները ստանալու և ավտոմատ կերպով կիրառելու համար՝

git pull origin main # օրինակ

git pull հիմնականում համեմատելի է git fetch և git merge կամ git rebase-ի հաջորդական կատարման հետ (կարգավորումների վրա կախված)։

# Համարժեք `git pull`-ին
git fetch origin
git merge origin/main # եթե ընթացիկ ճյուղը main է և օգտագործում եք merge որպես միացման ռազմավարություն

git fetch-ի օգտագործումը ավելի շատ վերահսկողություն է տալիս, քանի որ թույլ է տալիս նախ դիտարկել մուտքագրվող փոփոխությունները՝ միավորման նախորդ։ git pull հարմար է արագ սինխրոնիզացիայի համար։