Git Cherry-Pick

1 λεπτά

Πίνακας περιεχομένων

  1. Τι είναι το cherry-pick;
  2. Γρήγορη πρακτική
  3. Σενάριο χρήσης
  4. Απαραίτητες εντολές

1. Τι είναι το cherry-pick;

Git cherry-pick = Αντιγραφή ΕΝΟΣ συγκεκριμένου commit από έναν κλάδο σε έναν άλλο.

Συγκεκριμένο παράδειγμα:

  • Στον feature-login: commit διόρθωσης κρίσιμου σφάλματος
  • Στο main: θέλετε ΜΟΝΟ αυτή τη διόρθωση, όχι ολόκληρο τον κλάδο
  • Λύση: git cherry-pick <commit-hash>

Επιστροφή στον πίνακα περιεχομένων

2. Γρήγορη πρακτική

Δημιουργία του έργου:

bash
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, χωρίς τη λειτουργία.

Επιστροφή στον πίνακα περιεχομένων

3. Σενάριο χρήσης

Τυπική κατάσταση:

  1. Ανάπτυξη στον feature-branch
  2. Κρίσιμο σφάλμα εντοπίστηκε και διορθώθηκε
  3. Η παραγωγή (main) χρειάζεται τη διόρθωση ΤΩΡΑ
  4. Αλλά όχι ολόκληρη τη λειτουργία σε ανάπτυξη

Λύση:

bash
git log --oneline feature-branch    # Εύρεση του hash της διόρθωσης
git checkout main
git cherry-pick abc123f             # Εφαρμογή ΜΟΝΟ αυτού του commit

Επιστροφή στον πίνακα περιεχομένων

4. Απαραίτητες εντολές

ΕντολήΕνέργεια
git cherry-pick <hash>Αντιγραφή ενός commit
git cherry-pick <hash1> <hash2>Αντιγραφή πολλών commits
git cherry-pick --continueΣυνέχεια μετά από επίλυση σύγκρουσης
git cherry-pick --abortΑκύρωση της λειτουργίας

Αυτό είναι όλο! Το cherry-pick είναι απλό: 1 commit → 1 αντίγραφο.

Επιστροφή στον πίνακα περιεχομένων