Git Pull ile Git Fetch Arasındaki Fark Nedir? Hangisi Ne Zaman Kullanılır?

sametgness · 28 Eylül 2026 · 1 görüntülenme · 0 cevap

git pull ve git fetch, uzak Git repository'sindeki değişiklikleri takip etmek için kullanılan iki temel komuttur. Aralarındaki en önemli fark şudur: git fetch uzak değişiklikleri indirir ancak mevcut çalışma branch'inize uygulamaz; git pull ise uzak değişiklikleri aldıktan sonra mevcut branch'inizle birleştirmeye çalışır.


Bu nedenle uzak repository'de nelerin değiştiğini önce kontrol etmek istiyorsanız git fetch, değişiklikleri doğrudan mevcut branch'inize almak istiyorsanız uygun durumda git pull kullanılabilir.

Git fetch ne işe yarar?

Temel kullanım:

git fetch

veya belirli bir remote için:

git fetch origin

şeklindedir.

Bu komut GitHub gibi uzak repository'deki güncel branch ve commit bilgilerini yerel repository'nize getirir.

Ancak üzerinde çalıştığınız dosyaları doğrudan değiştirmez.

Örneğin main branch'indeyseniz ve GitHub'daki main branch'ine yeni commit gönderilmişse git fetch origin bu değişiklikleri öğrenmenizi sağlar fakat yerel main branch'inizi otomatik olarak güncellemez.

Git pull ne işe yarar?

Temel kullanım:

git pull

şeklindedir.

Belirli bir remote ve branch için:

git pull origin main

kullanılabilir.

git pull, temel olarak uzak değişiklikleri alır ve yapılandırmaya bağlı olarak bunları mevcut branch'inizle bütünleştirmeye çalışır.

Bu nedenle komut çalıştırıldıktan sonra yerel çalışma geçmişiniz değişebilir.

Temel fark nedir?

Basit şekilde:

git fetch → Değişiklikleri getir, henüz çalışma branch'ime uygulama.

git pull → Değişiklikleri getir ve çalışma branch'imle bütünleştir.

Bu fark özellikle ortak geliştirilen projelerde önemlidir.

Git fetch neden daha kontrollü olabilir?

Bir ekip projesinde başka geliştiricilerin yaptığı değişiklikleri hemen kendi branch'inize almak istemeyebilirsiniz.

Önce:

git fetch origin

çalıştırarak uzak repository'deki güncel durumu alabilirsiniz.

Daha sonra değişiklikleri inceleyip nasıl birleştireceğinize karar verebilirsiniz.

Bu yaklaşım beklenmeyen değişikliklerin doğrudan aktif branch'e uygulanmasını önlemeye yardımcı olur.

Git pull kullandığımda dosyalarım silinir mi?

Normal koşullarda git pull amacı yerel dosyalarınızı rastgele silmek değildir.

Ancak yerel ve uzak repository'de aynı bölümlerde farklı değişiklikler varsa conflict oluşabilir.

Ayrıca çalışma dizininizde commit edilmemiş değişiklikler bulunuyorsa Git bazı işlemleri güvenli şekilde gerçekleştiremeyebilir.

Bu nedenle önemli değişiklikleriniz varken önce:

git status

komutuyla mevcut durumu kontrol etmek iyi bir alışkanlıktır.

Merge conflict nedir?

Siz ve başka bir geliştirici aynı dosyanın aynı bölümünü farklı şekilde değiştirdiyseniz Git hangi değişikliğin kullanılacağına otomatik karar veremeyebilir.

Bu durumda merge conflict oluşur.

git pull sırasında conflict meydana gelirse:

git status

ile sorunlu dosyaları görebilirsiniz.

Daha sonra dosyalardaki çakışmaları inceleyerek hangi kodun korunacağına karar vermeniz gerekir.

Git pull --rebase nedir?

Bazı projelerde:

git pull --rebase

kullanılır.

Bu yöntemde yerel commit'leriniz, uzak branch'in güncel geçmişinin üzerine yeniden uygulanabilir.

Bu yaklaşım daha doğrusal bir commit geçmişi sağlayabilir ancak rebase mantığını bilmeden özellikle paylaşılan commit'lerde kullanmak kafa karışıklığına yol açabilir.

Ekibinizin kullandığı Git çalışma modeline uygun hareket edin.

Git fetch sonrasında değişiklikleri nasıl görebilirim?

Öncelikle:

git fetch origin

çalıştırabilirsiniz.

Ardından yerel branch ile uzak branch arasındaki commit farklarını Git'in log ve diff araçlarıyla inceleyebilirsiniz.

Örneğin main branch'i için uzak referans genellikle:

origin/main

şeklinde görünür.

Böylece değişiklikleri çalışma branch'inize uygulamadan önce neler geldiğini kontrol edebilirsiniz.

Git pull ne zaman kullanılabilir?

Şu durumlarda kullanışlıdır:

- Uzak branch'teki değişiklikleri doğrudan almak istiyorsanız
- Repository'nin güncel haline geçmek istiyorsanız
- Yerel çalışma durumunuzu biliyorsanız
- Ekip çalışma düzeniniz pull kullanımına uygunsa

Ancak önemli yerel değişiklikleriniz varsa önce git status ile kontrol etmek faydalıdır.

Git fetch ne zaman kullanılabilir?

Şu durumlarda özellikle faydalıdır:

- Önce uzakta ne değiştiğini görmek istiyorsanız
- Ortak bir repository üzerinde çalışıyorsanız
- Yerel branch'inizi hemen değiştirmek istemiyorsanız
- Branch'ler arasındaki farkları inceleyecekseniz
- Push hatasının nedenini araştırıyorsanız

Örneğin git push sırasında uzak branch'in sizden ileride olduğu belirtiliyorsa git fetch ile mevcut durumu incelemek iyi bir başlangıç olabilir.

Git clone ile farkı nedir?

git clone mevcut bir repository'yi ilk kez bilgisayarınıza almak için kullanılır.

Örneğin:

git clone REPOSITORY_ADRESI

Repository bilgisayarınıza geldikten sonra güncel değişiklikleri takip etmek için git fetch veya git pull kullanılabilir.

Y