Cosa fa cherry-pick
git cherry-pick prende un commit da un branch e lo applica come nuovo commit sul branch corrente.
L'operazione base
git checkout release/1.4
git cherry-pick <sha>
Cherry-pick di range
git cherry-pick <sha1> <sha2> <sha3>
git cherry-pick <older>..<newer>
git cherry-pick <older>^..<newer>
Cherry-pick con conflitti
git cherry-pick <sha>
git add <file>
git cherry-pick --continue
git cherry-pick --abort
Registrare l'origine nel messaggio
git cherry-pick -x <sha>
Cherry-pick di merge
git cherry-pick -m 1 <merge-sha>
Cherry-pick versus merge
- Merge - integra un intero branch.
- Cherry-pick - copia un commit specifico.
Il problema dei commit duplicati
git cherry main feature
git rebase --skip
Cherry-pick vuoti
git cherry-pick --allow-empty <sha>
git cherry-pick --skip
Workflow dove cherry-pick brilla
- Hotfix da
maina un branch di release. - Promuovere un fix da un feature branch a
main. - Riapplicare un commit perso durante un rebase.
- Inoltrare selettivamente fix tra linee di manutenzione.
Best practice
- Usare sempre
-xper i backport. - Riferirsi alla PR o ticket originale.
- Eseguire test sul branch di destinazione.