# Git Fetch vs Git Pull

Adres: https://softwaredictionary.org/tr/karsilastirma/git-fetch-vs-git-pull
Son güncelleme: 2026-10-03

Kısaca: git fetch yeni commit'leri işinize dokunmadan indirir; git pull ise fetch yapar ve bu değişiklikleri hemen mevcut branch'inize merge ya da rebase eder.

## git fetch ile git pull arasındaki fark nedir?

İkisi de uzak bir depoyla konuşur ve henüz sizde olmayan commit'leri indirir. `git fetch` orada durur: neyin değiştiğini görebilmeniz için `origin/main` gibi referansları günceller, ama yerel branch'leriniz, staged değişiklikleriniz ve dosyalarınız tam olarak oldukları gibi kalır.

`git pull`, `git fetch` artı ikinci bir adımdır. Varsayılan olarak indirilen branch'i mevcut branch'inize merge eder ve iki tarafta da yeni commit'ler varsa bir merge commit'i oluşturur; `--rebase` ya da `pull.rebase` ayarıyla ise yerel commit'lerinizi indirilenlerin üzerine yeniden oynatır. Çakışmalar varsa pull tamamlanmadan önce onları çözersiniz.

Önce fetch yapmak size inceleme şansı verir: `git log main..origin/main` gelen commit'leri listeler, `git diff main origin/main` de değişiklikleri gösterir; sonra bilinçli olarak merge ya da rebase yaparsınız. Pull ise yalnızca güncel olmak istediğinizde ve sürpriz beklemediğinizde hızlı seçenektir; kişisel bir branch'te çoğu zaman durum budur.

Sık yapılan bir yanlış, pull her şeyi yaptığı için fetch'in anlamsız olduğunu düşünmektir. Fetch, uzak depoyu incelemenin güvenli ve salt okunur yoludur; editörlerin branch'inizin geride kaldığını göstermesi de onunla olur. `pull.ff only` ayarı, pull'un fast-forward dışında her şeyi reddetmesini sağlar; böylece hiçbir zaman beklenmedik bir merge oluşturmaz.

| Özellik | Git Fetch | Git Pull |
| --- | --- | --- |
| Commit'leri indirir | Evet | Evet |
| Branch'inizi değiştirir | Hayır | Evet, merge ya da rebase eder |
| Dosyalarınızı değiştirir | Hayır | Evet |
| Çakışmaya yol açabilir | Hayır | Evet, iki taraf da değiştiyse |
| origin/main'i günceller | Evet | Evet |
| Tipik kullanım | Birleştirmeden önce uzaktaki değişiklikleri incelemek | Hızla güncel olmak |

## Git Fetch şu durumlarda doğru seçim

- Birleştirmeden önce neyin değiştiğini görmek istiyorsunuz.
- Devam eden yerel işiniz var ve sürpriz istemiyorsunuz.
- Branch değiştirmeden bütün uzak branch'leri güncellemek istiyorsunuz.

## Git Pull şu durumlarda doğru seçim

- Yalnızca branch'inizin uzak depoyla güncel olmasını istiyorsunuz.
- Çakışma beklemiyorsunuz ya da çözmeye hazırsınız.
- Branch'te tek başınıza çalışıyor ve gelen değişikliklere güveniyorsunuz.

## Sık sorulan sorular

**git pull, git fetch artı git merge ile aynı şey mi?**

Varsayılan olarak evet. --rebase seçeneği ya da pull.rebase ayarıyla ise git fetch artı git rebase'dir.

**git fetch'i her zaman çalıştırmak güvenli mi?**

Evet. Yalnızca veri indirir ve uzak izleme branch'lerini günceller; branch'lerinizi ya da dosyalarınızı asla değiştirmez.

**Pull'u merge ile mi, rebase ile mi kullanmalıyım?**

Rebase geçmişi doğrusal tutar ve kişisel branch'lerde küçük merge commit'lerini önler. Merge ise işin tam olarak nasıl birleştirildiğini korur. Birçok ekip günlük iş için pull.rebase true ayarını kullanır.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
