Cosa fa il cherry-pick
git cherry-pick applica il diff di uno o piu commit sul branch corrente come nuovi commit. E lo strumento giusto quando si vuole un cambiamento specifico senza fare merge dell'intero branch — tipico per il backport di fix su un branch di release.
Uso base e per range
git cherry-pick <sha>
git cherry-pick A..B
git cherry-pick A^..B
Risolvere i conflitti
git cherry-pick --continue
git cherry-pick --skip
git cherry-pick --abort
Registrare la sorgente
git cherry-pick -x <sha>
Mainline per i merge
git cherry-pick -m 1 <merge-sha>
Insidia: storie divergenti
Il cherry-pick crea un nuovo commit con SHA diverso dall'originale. Se entrambi i branch alla fine vengono fusi, Git spesso li riconcilia, ma se le due copie sono divergenti tramite modifiche successive si rischia riapplicazione o conflitto.
Insidia: deriva semantica silenziosa
Un cherry-pick testualmente pulito puo comunque rompere il comportamento se il codice circostante ha cambiato significato. Eseguire sempre i test dopo i pick.
Tracciare i pick applicati
git log -p <sha> | git patch-id
git log -p main | git patch-id
Errori comuni
Cherry-pick senza -x su un branch di release rende doloroso l'audit. Dimenticare -m su un commit di merge produce un pick vuoto o un diff confuso.