Git güçlü bir sürüm kontrol sistemidir, ancak özellikle yeni başlayanlar için komutları kafa karıştırıcı olabilir. Sıklıkla yanlış anlaşılmalara neden olan iki komut git checkout
ve git pull
‘dur. Her ikisi de dallar ve uzak depolarla etkileşime girse de, işlevleri farklıdır. Bu makale, farklılıklarını netleştiriyor ve hangisinin ne zaman kullanılacağını açıklıyor.
İçindekiler
Git Pull
git pull
, git fetch
ve git merge
‘ü birleştiren kullanışlı bir kısayoldur. Her birini inceleyelim:
git fetch
: Uzak bir depodaki commit’leri, dosyaları ve referansları yerel makinenize indirir. Çok önemli olarak, çalışma dizininizi veya seçili dalınızı değiştirmez. Sadece uzak deponun durumuna ilişkin yerel bilginizi günceller.git merge
: Bir daldaki değişiklikleri diğerine entegre eder.git pull
‘da, alınan uzak dal değişikliklerini şu anda seçili olan yerel dalınıza birleştirir.
Bu nedenle, git pull
şu adımları gerçekleştirir:
- Uzak depodaki güncellemeleri alır.
- Bu güncellemeleri geçerli yerel dalınıza birleştirir.
Uzak ve yerel değişiklikler çakışıyorsa bu kolaylık sorunlu olabilir. Bunu karşılaştırma bölümünde daha ayrıntılı olarak ele alacağız.
Git Checkout
git checkout
çok yönlüdür, ancak dal değiştirme ve çalışma dizini güncellemelerindeki rolüne odaklanacağız:
- Dal Değiştirme:
git checkout <dal_adı>
çalışma dizininizi belirtilen dala geçirir. Dosyalarınız bu dalın durumunu yansıtacaktır. Yerel dal uzak daldan güncel değilse, dosyalarınız son checkout durumunu temsil edecektir. - Yeni Dal Oluşturma:
git checkout -b <yeni_dal_adı>
yeni bir dal oluşturur ve ona geçer. - Dali Güncelleme (Önerilmez): Bir dalı güncellemek için
git checkout
kullanarak fetch ve merge yapabilirsiniz, ancak bu en iyi uygulama değildir. Uygun birleştirme ve çakışma çözümü içingit pull
kullanın.
Git Pull ve Git Checkout: Ayrıntılı Karşılaştırma
Özellik | Git Pull | Git Checkout |
---|---|---|
Birincil İşlev | Uzak değişiklikleri alıp birleştirme | Dal değiştirme, dal oluşturma |
Uzak Etkileşim | Evet, uzaktan alır ve birleştirir | Yok (fetch/merge ile kullanılmadığı sürece) |
Yerel Değişiklikler | Uzak değişiklikleri birleştirir, potansiyel olarak çakışmalara neden olur | Yerel değişiklikleri etkilemez (farklı değişikliklere sahip bir dala geçilmediği sürece) |
Dal Değiştirme | Birleştirmeden sonra örtük olarak geçerli dala geçer | Açıkça dal değiştirir |
Çakışma Çözümü | Değişiklikler çakışıyorsa çakışma çözümü gerektirir | Doğasında çakışma çözümü yoktur |
En İyi Kullanım Durumu | Yerel dalınızı uzak değişikliklerle güncelleme | Dallar arasında geçiş yapmak, yeni dallar oluşturmak |
Özetle: Geçerli yerel dalınızı uzak değişikliklerle güncellemek için git pull
kullanın. Dallar arasında geçiş yapmak veya yeni dallar oluşturmak için git checkout
kullanın. Bir dalı güncellemek için git checkout
kullanmaktan kaçının; git pull
‘ın çakışma çözümleme özelliğinden yoksundur. Veri kaybını önlemek için çekmeden veya dal değiştirmeden önce yerel değişiklikleri her zaman commit edin veya stashleyin.