git cherry-pick
- Git kursu
- Orta seviye
- Ders 33/82
- 4 dk
git cherry-pick ile tek commit almayı öğrenirsin.
git cherry-pick nedir?
Git'te tek bir commit'i alıp içinde olduğun dala uygulayan komut git cherry-pick'tir. Böylece tüm dalı birleştirmeden yalnızca seçtiğin değişikliği taşımış olursun. Komuta taşınacak commit'in hash'ini verirsin ve değişiklik geçerli dala uygulanır (apply).
git cherry-pick a1b2c3dOrijinal commit kendi dalında durmaya devam eder.
Yeni bir commit oluşur
cherry-pick uygulandığında hedef dalda yeni bir commit oluşur; orijinal commit kendi dalında kalır. Oluşan bu yeni commit'in hash'i, taşınan commit'in hash'inden farklıdır.
git log --oneline
9e4f2ab ozellik eklendi
3c1d7aa temel kayitDeğişiklik kopyalanır ama commit kimliği yeniden üretilir.
Uygulama Daldan tek commit al
temel.txt dosyasını oluşturup ekle ve sessizce kaydet. ozellik adında bir dal aç; bu dalda yeni.txt oluşturup içine ozellik yaz, ekle ve sessizce kaydet. Bir önceki dala dön, ozellik dalındaki commit'i git cherry-pick ile al ve sonunda yeni.txt içeriğini yazdır.
Başlangıç kodu
git init -q
# 1) temel.txt olustur, ekle ve sessizce kaydet
# 2) ozellik adinda yeni bir dal ac
# 3) yeni.txt olustur, icine ozellik yaz, ekle ve sessizce kaydet
# 4) onceki dala don
# 5) ozellik dalindaki commit'i cherry-pick ile al
# 6) yeni.txt icerigini yazdirÖrnek çözüm
git init -q
echo temel > temel.txt
git add temel.txt
git commit -q -m "temel"
git checkout -q -b ozellik
echo ozellik > yeni.txt
git add yeni.txt
git commit -q -m "ozellik"
git checkout -q -
git cherry-pick ozellik >/dev/null 2>&1
cat yeni.txtBeklenen çıktı
ozellik
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 git cherry-pick komutu ne yapar?
- Olası çatışmaları otomatik olarak çözer
- Dalın tüm geçmişini geçerli dala birleştirir
- Verilen commit'i daldan siler
- Başka bir daldaki tek bir commit'i geçerli dala uygular Doğru cevap
Açıklama: cherry-pick tek commit'i seçer ve geçerli dala uygular; tüm dalı birleştirmez, commit silmez ve çatışmaları kendi başına çözmez.
2 Komutu yaz
git checkout -
git ____ ozellik
git checkout -
git cherry-pick ozellik
Açıklama: Tek bir commit'i uygulayan alt komut cherry-pick'tir; cherry, pick veya take diye bir alt komut yoktur.
3 Cherry-pick temelleri
| Kavram | Anlamı |
|---|---|
git cherry-pick |
Tek commit uygular |
single commit |
Bir değişiklik kaydı |
apply |
Değişikliği geçerli dala geçirir |
new commit |
Hedef dalda yeni kayıt oluşur |