Git cherry-pick = Αντιγραφή ΕΝΟΣ συγκεκριμένου commit από έναν κλάδο σε έναν άλλο.
Συγκεκριμένο παράδειγμα:
feature-login: commit διόρθωσης κρίσιμου σφάλματος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"
# Δημιουργία κλάδου feature
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 ΜΟΝΟ του bugfix
git checkout main
git cherry-pick <hash-du-commit-bugfix>Να το! Η διόρθωση είναι στο main, χωρίς τη λειτουργία.
Τυπική κατάσταση:
feature-branchmain) χρειάζεται τη διόρθωση ΤΩΡΑΛύση:
git log --oneline feature-branch # Εύρεση του hash της διόρθωσης
git checkout main
git cherry-pick abc123f # Εφαρμογή ΜΟΝΟ αυτού του commit| Εντολή | Ενέργεια |
|---|---|
git cherry-pick <hash> | Αντιγραφή ενός commit |
git cherry-pick <hash1> <hash2> | Αντιγραφή πολλών commits |
git cherry-pick --continue | Συνέχεια μετά από επίλυση σύγκρουσης |
git cherry-pick --abort | Ακύρωση της λειτουργίας |
Αυτό είναι όλο! Το cherry-pick είναι απλό: 1 commit → 1 αντίγραφο.