Ի՞նչ է տարբերությունը 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 հարմար է արագ սինխրոնիզացիայի համար։