Git geçmişini yönetmenin gelişmiş yollarından ikisi: rebase ve cherry-pick.
git rebaseRebase, bir dalın başlangıç noktasını başka bir dalın ucuna taşıyarak daha temiz bir geçmiş oluşturur.
git checkout feature
git rebase main
featuredalındaki commit'ler,maindalının sonuna eklenir gibi yeniden yazılır.
# Çatışmaları çöz
git add .
git rebase --continue
git rebase --abort
git rebase -i HEAD~5
Son 5 commit üzerinde düzenleme yapmanı sağlar (örn. squash, edit, drop).
git cherry-pickBir commit’i başka bir dala tek başına almak için kullanılır.
git checkout main
git cherry-pick <commit-id>
Belirtilen commit’in aynısı, geçerli dala eklenir.
| Özellik | git rebase |
git cherry-pick |
|---|---|---|
| Commit grubu taşıma | ✅ Evet | ❌ Hayır |
| Bireysel commit seçme | ❌ Hayır | ✅ Evet |
| Geçmişi değiştirme | ✅ Evet | ✅ Evet |
| Kullanım amacı | Dalları birleştirme | Belirli değişiklikleri alma |
rebase geçmişi temizlemek için idealdir ama dikkatli kullanılmalıdır.rebase kullanmadan önce iki kez düşün.cherry-pick, hotfix veya sadece bir commit’i alma işlemlerinde çok kullanışlıdır.