Git Fetch ve Git Pull Arasındaki Farklar: Teknik Rehber

Git projelerinizde uzak depodaki değişiklikleri alırken git fetch ve git pull komutlarının nasıl farklı çalıştığını ve hangisini ne zaman kullanmanız gerektiğini öğrenin.

L
Linuxize
9 görüntülenme
Git Fetch ve Git Pull Arasındaki Farklar: Teknik Rehber

Giriş

Git kullanıcılarının en sık karşılaştığı sorulardan biri, uzak depodaki (remote) güncellemeleri yerel çalışma alanına aktarmak için git fetch mi yoksa git pull mu kullanılması gerektiğidir. Bu makalede, bu iki komutun çalışma prensiplerini ve güvenli bir iş akışı için hangisinin tercih edilmesi gerektiğini detaylandıracağız.

Git Fetch Nedir?

git fetch, uzak depodaki tüm commit, dal (branch) ve etiketleri yerel deponuza indirir ancak çalışma dizininize veya aktif dalınıza hiçbir müdahalede bulunmaz. Bu komut, uzak depodaki değişiklikleri 'görmenizi' sağlar ancak bunları yerel dosyalarınızla birleştirmez (merge etmez).

Kullanım Adımları

  1. Uzak depodaki güncellemeleri indirin:
    git fetch origin
  2. Yerel dalınız ile uzak dal arasındaki farkları inceleyin:
    git log main..origin/main --oneline
  3. Değişiklikleri inceledikten sonra, uygun görürseniz birleştirme işlemini yapın:
    git merge origin/main
İpucu: git fetch komutu tamamen güvenlidir; çalışma dizininizdeki dosyaları değiştirmez ve çakışma (conflict) riski taşımaz.

Git Pull Nedir?

git pull, aslında iki farklı işlemin birleşimidir: git fetch ve ardından git merge (veya yapılandırmaya göre git rebase). Bu komut, uzak depodaki değişiklikleri indirir ve doğrudan mevcut dalınızla birleştirir.

Riskler ve Dikkat Edilmesi Gerekenler

git pull doğrudan çalışma dizininizi değiştirdiği için, yerelinizde bekleyen değişiklikler varsa beklenmedik birleştirme çakışmaları (merge conflicts) ile karşılaşabilirsiniz. Bu nedenle, üzerinde çalıştığınız dalın güncel olduğundan emin olmalısınız.

Karşılaştırma Tablosu

Özellikgit fetchgit pull
Uzak değişiklikleri indirirEvetEvet
Yerel dalı güncellerHayırEvet
Çalışma dizinini değiştirirHayırEvet
Çakışma riskiYokVar

En İyi Uygulama: Güvenli İş Akışı

Profesyonel geliştiriciler, genellikle git pull yerine git fetch kullanmayı tercih ederler. Bu, değişiklikleri önceden görmenizi ve birleştirme işlemini kontrol altında tutmanızı sağlar. Eğer doğrudan pull yapmak istiyorsanız, en azından --ff-only bayrağını kullanarak beklenmedik birleştirme commit'lerinden kaçınabilirsiniz:

git pull --ff-only

Eğer bir hata yaptıysanız ve git pull işlemi sonucunda oluşan birleştirme commit'ini geri almak isterseniz, git reset --hard ORIG_HEAD komutu ile bir önceki duruma dönebilirsiniz (Dikkat: Bu komut kaydedilmemiş değişiklikleri siler).

Kaynak

Linuxize