# Git Fetch

Adres: https://softwaredictionary.org/tr/terimler/git-fetch
Kategori: Sürüm Kontrolü
Son güncelleme: 2026-10-03
Okunuşu: git feç

Kısaca: git fetch, uzak depodan yeni commit, branch ve etiketleri indirip origin/main gibi uzak izleme branch'lerini günceller; sizin branch ve dosyalarınız değişmez.

## git fetch ne yapar?

Yerel deponuz, her uzak deponun onunla son konuştuğunuzda nasıl göründüğünü `origin/main` ve `origin/feature-x` gibi uzak izleme branch'lerinde (remote-tracking branch) kaydeder. `git fetch` uzak depoyla bağlantı kurar, henüz sizde olmayan commit'leri indirir ve bu uzak izleme branch'lerini onlara uyacak şekilde taşır. Mevcut branch'iniz, staging alanınız ve dosyalarınız tam olarak oldukları gibi kalır.

Bu da fetch'i başkalarının ne yaptığını görmenin güvenli yolu yapar. Fetch'ten sonra `git log main..origin/main` uzak depoda olup sizin henüz birleştirmediğiniz commit'leri listeler, `git diff main origin/main` de değişiklikleri gösterir. Sonra onları merge etmeye, üzerlerine rebase etmeye ya da sonraya bırakmaya karar verebilirsiniz.

`git pull` aslında `git fetch` ve ardından mevcut branch'inize bir merge ya da rebase'dir. Ayrı fetch yapmak önce bakma şansı verir. `git fetch --prune` sunucuda silinmiş uzak izleme branch'lerini de kaldırır, `git fetch --all` de yapılandırılmış her uzak depoyu günceller. Birçok editör, branch'inizin geride kaldığını gösterebilmek için arka planda fetch yapar.

Sık yapılan bir yanlış, fetch'in yerel branch'lerinizi güncellediğini düşünmektir. `main`'in kendisine asla dokunmaz; yalnızca `origin/main` hareket eder. Fetch'ten sonra bir branch'in, siz pull, merge ya da rebase yapana kadar upstream'inin gerisinde görünmesinin nedeni budur.

## Önemli noktalar

- git fetch uzak bir depodan yeni commit'leri ve referansları indirir.
- origin/main gibi uzak izleme branch'lerini günceller.
- Branch'leriniz, staging alanınız ve dosyalarınız değişmez.
- git pull, fetch artı bir merge ya da rebase'dir.
- --prune, sunucuda silinmiş uzak izleme branch'lerini kaldırır.

## Örnek: Birleştirmeden önce fetch yapıp incelemek

```bash
git fetch origin --prune

git status
# Your branch is behind 'origin/main' by 3 commits, and can be fast-forwarded.

git log --oneline main..origin/main   # what arrived from the remote
git diff main origin/main             # the changes themselves

git merge --ff-only origin/main       # bring them in when ready
# or: git rebase origin/main
```

## Sık sorulan sorular

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

git fetch yalnızca değişiklikleri indirir ve uzak izleme branch'lerini günceller. git pull ise fetch yapar ve bu değişiklikleri hemen mevcut branch'inize merge ya da rebase eder.

**git fetch güvenli mi?**

Evet. Branch'lerinizi, staged değişikliklerinizi ya da çalışma dosyalarınızı değiştirmez; bu yüzden uzak depoda neyin değiştiğini görmek için onu istediğiniz zaman çalıştırabilirsiniz.

**origin/main nedir?**

Bir uzak izleme branch'idir: origin adlı uzak depodaki main branch'inin, son fetch yaptığınızda gösterdiği yerin yerel kopyası. Yalnızca fetch ya da pull yaptığınızda hareket eder.

---

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