Ana içeriğe geç

Git Pull

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/git-pull

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 çekmekbash
# 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.

Sık karşılaştırılanlar

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar