Git cherry-pick = نسخ إيداع محدَّد من فرع إلى آخر.
مثال ملموس:
feature-login: إيداع إصلاح خطأ حرجmain: تريد هذا الإصلاح فقط، لا الفرع كلهgit cherry-pick <commit-hash>إنشاء المشروع:
mkdir demo-cherry-pick && cd demo-cherry-pick
git init
echo "print('v1')" > app.py
git add . && git commit -m "Version initiale"
# إنشاء فرع ميزة
git checkout -b feature-new
echo "print('v2-feature')" > app.py
git add . && git commit -m "Nouvelle fonctionnalité"
echo "print('v2-bugfix')" > app.py
git add . && git commit -m "Fix critique"
# العودة إلى main و cherry-pick للإصلاح فقط
git checkout main
git cherry-pick <hash-du-commit-bugfix>هذا كل شيء! الإصلاح على main، بلا الميزة.
وضع نموذجي:
feature-branchmain) يحتاج الإصلاح الآنالحل:
git log --oneline feature-branch # إيجاد تجزئة الإصلاح
git checkout main
git cherry-pick abc123f # تطبيق هذا الإيداع فقط| الأمر | الإجراء |
|---|---|
git cherry-pick <hash> | نسخ إيداع |
git cherry-pick <hash1> <hash2> | نسخ عدة إيداعات |
git cherry-pick --continue | المتابعة بعد حل تعارض |
git cherry-pick --abort | إلغاء العملية |
هذا كل شيء! Cherry-pick بسيط: إيداع واحد → نسخة واحدة.