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