Ana içeriğe geç

Git Fetch

Okunuşu
git feç
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-fetch

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 incelemekbash
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.

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