Git Fetch vs Pull
Son güncelleme
git fetch uzaktaki en son commit'leri indirir ama çalışma branch'inizi tam olduğu gibi bırakır. git pull aynı indirmeyi yapar ve ardından bu commit'leri hemen mevcut branch'inize merge eder. Kısacası: git pull = git fetch + git merge.
Atlamadan önce bakmak istediğinizde fetch, entegre etmeye hazır olduğunuzda pull kullanın. Her ikisini de terminal playground'da deneyin: tarayıcınızda gerçek bir shell.
Yan yana
| Behavior | git fetch | git pull |
|---|---|---|
| Uzak commit'leri indirir | Evet | Evet |
| Mevcut branch'inizi değiştirir | Hayır | Evet |
| Merge çakışmalarına yol açabilir | Hayır | Evet |
| Eşdeğeri | yalnızca indirme | fetch + merge |
Sözdizimi
| Command | What it does |
|---|---|
git fetch | Tüm uzak değişiklikleri indirir, merge etmez |
git fetch origin main | Bir uzaktan yalnızca bir branch getirir |
git pull | İndirir ve mevcut branch'e merge eder |
git pull --rebase | İndirir, ardından commit'lerinizi üstüne rebase eder |
git log HEAD..origin/main | Fetch sonrası: neyi merge edeceğinizi görün |
Git fetch vs pull SSS
git fetch ile git pull arasındaki fark nedir?
git fetch yeni commit'leri indirir ve uzak izleme branch'lerinizi (origin/main gibi) günceller ama çalışma branch'inizi değiştirmez. git pull aynı fetch işlemini yapar ve ardından yeni commit'leri mevcut branch'inize merge eder. Yani pull dosyalarınızı değiştirir; fetch ise yalnızca uzak hakkındaki bilginizi günceller.git pull sadece fetch artı merge mi?
Evet.
git pull, git fetch'in ardından getirilen branch'in mevcut branch'inize git merge edilmesinin kısaltmasıdır. git pull --rebase ile ikinci adım merge yerine bir rebase olur ve bu geçmişi doğrusal tutar.Ne zaman pull yerine fetch kullanmalıyım?
Gelen değişiklikleri entegre etmeden önce incelemek istediğinizde
git fetch kullanın; örneğin, tam olarak neyin yeni olduğunu görmek için git fetch ardından git log HEAD..origin/main. Uzak değişikliklere zaten güveniyorsanız ve yalnızca bunların branch'inize merge edilmesini istiyorsanız git pull kullanın.git fetch hiç çakışmaya yol açar mı?
Hayır. Fetch yalnızca uzak izleme branch'lerini günceller; çalışma branch'inize veya dosyalarınıza asla dokunmaz, bu yüzden merge çakışması üretemez. Çakışmalar yalnızca merge adımında ortaya çıkar; bunu pull otomatik olarak yapar ama fetch yapmaz.
Bunu çevrimiçi olarak pratik edebilir miyim?
Evet.
git fetch ve git pull komutlarını tarayıcınızdaki gerçek bir shell'de çalıştırmak için terminal playground'u açın; kurulacak bir şey yok. Coddy'nin ücretsiz etkileşimli Git kursu da uzaklarla çalışmayı adım adım kapsar.