Kiraz toplama yapmakta sorun yaşıyorum. Yerel makinemde şu anda "ana" şubemdeyim. Başka bir daldan "zebra" adlı bir taahhütte kiraz toplamak istiyorum. "Zebra" dalı uzak bir daldır.
Yani git durumu:
# On branch master
nothing to commit (working directory clean)
Tamam, şimdi istediğim taahhüdü seçmeye çalışıyorum:
git cherry-pick xyz
fatal: bad object xyz
burada "xyz" ilgilendiğim işlemin imzasıdır, "zebra" dalında meydana gelmiştir.
Öyleyse ilk bariz soru şudur: Git neden referans verdiğim commit'i bulamıyor? Dürüst olmak gerekirse ilk etapta bunun nasıl çalıştığını gerçekten anlamıyorum. Git, diğer tüm dallar için çalışma dizinimde yerel olarak işlemlerin bir veritabanı gibi bir şey depoluyor mu? Cherry-pick komutunu çalıştırırken, bahsettiğim commit'i bulmak için o yerel veritabanını arıyor mu?
"Zebra" uzak bir dal olduğundan, verilerine yerel olarak sahip olmadığımı düşünüyordum. Ben de dalları değiştirdim:
git checkout zebra
Switched to branch 'zebra'
Şimdi burada yerel makinemde, dizindeki dosyaların zebra'nın durumunu doğru şekilde yansıttığını görebiliyorum. Ustaya geri dönüyorum, tekrar seçmeyi deniyorum (commit verilerinin şimdi mevcut olmasını umuyorum), ama aynı sorunu yaşıyorum.
Burada neler olup bittiğine dair temel bir yanlış anlama var, herhangi bir yardım harika olur.