# Git Pull

Adres: https://softwaredictionary.org/tr/terimler/git-pull
Kategori: Sürüm Kontrolü
Son güncelleme: 2026-09-30

Kısaca: Git pull, uzak bir depodan yeni commit'leri indiren ve bunları hemen mevcut yerel branch'inize entegre eden bir Git komutudur.

## git pull nedir?

`git pull`, mevcut branch'inizi başkalarının uzak depoya push ettiği işlerle günceller. Aslında iki komutun birleşimidir: yeni commit'leri indiren ve `origin/main` gibi remote-tracking branch'leri güncelleyen `git fetch` ile onu izleyen ve bu commit'leri yerel branch'inizle birleştiren bir adım. Geliştiriciler genellikle yeni işe başlamadan önce ve push etmeden önce pull yapar; böylece branch'leri en son kodu temel alır.

Birleştirme adımının nasıl işlediği duruma ve ayarlarınıza bağlıdır. Kendi yerel commit'leriniz yoksa Git branch'inizi uzak olanla eşleşecek şekilde basitçe fast-forward eder. Her iki tarafta da yeni commit'ler varsa `git pull` ya bunları merge ederek bir merge commit oluşturur ya da `git pull --rebase` ile yerel commit'lerinizi uzak olanların üzerine yeniden uygular. Branch'ler ayrıştığında ve bir tercih yapılandırılmadığında Git'in modern sürümleri durur ve `pull.rebase` veya `pull.ff` ayarıyla seçim yapmanızı ister.

Pull yapmak, kendi randevularınızı eklemeden önce ortak bir takvimi eşitlemeye benzer: önce herkesin ne ayırdığını görür, sonra planlarınızı buna göre yerleştirirsiniz. Entegrasyon adımı, her merge ya da rebase gibi aynı çakışmalarla karşılaşabileceği için küçük ve sık pull yapmak çakışmaları seyrek ve çözmesi kolay tutar. Temkinli `git pull --ff-only`, branch'inizi yalnızca merge gerekmediğinde günceller, aksi halde karar verebilmeniz için durur.

En yaygın karışıklık `git pull` ile `git fetch` arasındadır. Fetch yalnızca yeni commit'leri indirir ve dosyalarınıza ya da branch'lerinize asla dokunmaz; bu yüzden çalıştırması her zaman güvenlidir, pull ise devam edip mevcut branch'inizi değiştirir. Adına rağmen `git pull` bir pull request ile de ilgisiz: pull request, başkalarından branch'inizi incelemelerini ve birleştirmelerini isteyen bir barındırma platformu özelliğidir; `git pull` ise başkalarının commit'lerini sizinkine getirir.

## Önemli noktalar

- `git pull` önce `git fetch` çalıştırır, ardından sonucu mevcut branch'inize merge eder ya da rebase eder.
- Kendi yerel commit'leriniz yoksa fast-forward yapar.
- `git pull --rebase`, merge commit oluşturmak yerine yerel commit'lerinizi uzak olanların üzerine yeniden uygular.
- `git fetch`, çalışma dosyalarınızı asla değiştirmeyen, yalnızca indirme yapan alternatiftir.
- Pull, herhangi bir merge gibi çözdüğünüz merge çakışmalarına yol açabilir.

## Örnek: Uzak depodan değişiklikleri çekmek

```bash
# Update the current branch from its upstream branch
git pull

# Roughly the same as these two steps (when on main):
git fetch origin
git merge origin/main

# Replay local commits on top of the remote ones instead of merging
git pull --rebase

# Only update if no merge is needed (never creates a merge commit)
git pull --ff-only

# Set a default once so Git doesn't have to ask
git config --global pull.rebase true
```

## Sık sorulan sorular

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

`git fetch` uzak depodan yeni commit'leri indirir ve `origin/main` gibi remote-tracking branch'leri günceller, ancak kendi branch'lerinize ve dosyalarınıza dokunmaz. `git pull` aynı fetch'i yapar, ardından bu commit'leri mevcut branch'inize merge eder ya da rebase eder.

**git pull --rebase kullanmalı mıyım?**

Birçok ekip, kişisel bir branch'i senkronize etmek için bunu tercih eder; çünkü fazladan merge commit olmadan geçmişi doğrusal tutar. Yerel commit'leriniz başkalarıyla paylaşıldıysa kaçının; çünkü rebase onları yeniden yazar.

**Bir git pull nasıl geri alınır?**

Pull'dan hemen sonra `git reset --hard ORIG_HEAD`, branch'i eski konumuna taşır ve çekilen değişiklikleri atar. Önce commit edilmemiş işiniz olmadığından emin olun; çünkü `--hard` onu da siler.

---

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