git fetch ile git pull arasındaki fark nedir?

Cevap

git fetch, uzak depodaki (remote) yeni commit'leri indirir ama çalışma dalınıza dokunmaz; git pull ise fetch + merge (veya ayarlıysa rebase) yapar, yani değişiklikleri doğrudan mevcut dalınıza birleştirir.

git fetch origin
git log --oneline main..origin/main   # uzakta gelen yeni commit'leri incele
git diff main origin/main             # neler değişmiş?
git merge origin/main                 # hazır olunca birleştir

git pull                              # fetch + merge tek adımda
git pull --rebase                     # fetch + rebase: gereksiz merge commit'i oluşmaz
git fetchgit pull
Uzak commit'leri indirirEvetEvet
Yerel dalı değiştirirHayırEvet
Conflict çıkabilirHayırEvet
Güvenlikİnceleyip sonra karar verirsinizDoğrudan birleştirir

Pratik öneriler

  • Paylaşılan bir dalda gereksiz "Merge branch 'main' of ..." commit'lerinden kaçınmak için git config --global pull.rebase true veya en azından pull.ff only ayarı yaygındır.
  • git fetch --prune uzakta silinmiş dalların yerel referanslarını temizler.
  • origin/main, uzak dalın son fetch anındaki yerel kopyasıdır; fetch yapmadan güncellenmez.
  1. git merge ile git rebase arasındaki fark nedir?OrtaGitFull Stack
  2. git reset ile git revert arasındaki fark nedir?OrtaGitFull Stack
  3. İyi bir code review nasıl yapılır? .gitignore'a neler eklenmelidir?KolayGitFull Stack
  4. Interactive rebase ile commit'leri nasıl düzenler ve squash edersiniz?ZorGitFull Stack
  5. git cherry-pick ve git stash ne işe yarar? Hangi durumlarda kullanılır?OrtaGitFull Stack
  6. Merge conflict nedir ve nasıl çözülür?KolayGitFull Stack

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle