CodeBlanks Logo Icon CodeBlanks

git cherry-pick

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 a1b2c3d

Orijinal 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 kayit

Değ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

terminal
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

terminal
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.txt

Beklenen çı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

Soru
git checkout -
git ____ ozellik
Cevap
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

Orta seviye bölümündeki tüm dersler

20 Orta seviye finali

  1. Dal yönetimi
  2. Rebase
  3. Çatışma
  4. PR akışı