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 სასარგებლოა სწრაფი სინქრონიზაციისთვის.