Junior
Cherry-pick nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
git cherry-pick bir daldan diğerine bir veya birkaç commit'in taşınması için kullanılır.
Çalışma prensibi:
- Kaynak dalda belirtilen commit(ler)i seçer.
- Bu commitlerdeki değişiklikleri aktif olan mevcut dala uygular.
- Orijinal commitlerle aynı değişiklikler ve mesajlara sahip yeni commitler oluşturur.
Ne zaman kullanılır:
- Bir hatayı düzeltmek için belirli bir commit'i (örneğin, üretim) başka bir dala (örneğin, geliştirme) taşımak, diğer değişiklikleri etkilemeden.
- Bir özellik dalından diğerine değişiklikleri uygulamak, tamamen birleştirmeden.
- Yanlış merge işlemlerini iptal edip, ayrı commitleri korumak.
merge ve rebase ile farkları:
merge: Bir dalın tüm değişiklik geçmişini diğerine entegre eder.rebase: Commit geçmişini yeniden yazarak, onları yeni bir temel üzerine taşır.cherry-pick: Sadece seçilen commitleri uygular, yeni commitler oluşturur ve orijinal commitlerin geçmişini değiştirmez.
Ana komut:
# Bir commit'i taşımak
git cherry-pick <commit-hash>
# Birkaç commit'i taşımak (sırasıyla belirtilen)
git cherry-pick <commit-hash-1> <commit-hash-2> ...
Örnek:
Diyelim ki main ve feature adında iki dal var. feature dalında fix-typo adlı bir commit yapılmış. Bu commit'in main dalına taşınması gerekiyor.
# Hedef dala geçiş yap
git checkout main
# feature dalındaki commit hash'ini kullanarak cherry-pick yap
git cherry-pick 7f3bca2 # Commit hash örneği
Komut çalıştırıldıktan sonra, main dalında fix-typo ile aynı değişiklikleri içeren yeni bir commit oluşur, ancak farklı bir hash ile.