Junior
Git'te pull ve fetch komutları arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
git fetch uzak depodan değişiklikleri indirir, ancak bunları mevcut dalınıza uygulamaz.
git pull bir git fetch yapar ve ardından alınan değişiklikleri otomatik olarak (merge) mevcut dal ile birleştirir.
Ana farklar:
| Komut | Eylem | Çalışma kopyası / dal üzerindeki etkisi |
|---|---|---|
git fetch |
Nesneleri (commitler, dosyalar) indirir | Çalışma kopyasını veya mevcut dalı değiştirmez |
git pull |
Nesneleri indirir ve değişiklikleri birleştirir | Mevcut dalı ve çalışma kopyasını günceller |
Kullanım örneği:
Uzak sunucuda ne değiştiğini görmek için:
git fetch origin
(Değişiklikleri git log origin/<dal> ile kontrol edebilirsiniz)
Değişiklikleri alıp otomatik olarak mevcut dala uygulamak için:
git pull origin main # örneğin
git pull, temelde git fetch ve git merge veya git rebase'in ardışık olarak yürütülmesine eşdeğerdir (ayarlarınıza bağlı olarak).
# git pull ile eşdeğerdir
git fetch origin
git merge origin/main # mevcut dalınız main ise ve birleştirme stratejisi olarak merge kullanıyorsanız
git fetch kullanımı daha fazla kontrol sağlar, çünkü birleştirmeden önce gelen değişiklikleri gözden geçirebilirsiniz. git pull hızlı senkronizasyon için uygundur.