git cherry-pick FIRST^..LAST
ne fonctionne que pour des scénarios simples.
Pour obtenir un "merge it into the integration branch" décent tout en ayant le confort habituel avec des choses comme l'auto-skipping des picks déjà intégrés, la transplantation des diamond-merges, le contrôle interactif ...) mieux vaut utiliser un rebase. Une réponse ici a pointé vers cela, cependant le protocole incluait un délicat git branch -f
et un jonglage avec une branche temporaire. Voici une méthode directe et robuste :
git rebase -i FIRST LAST~0 --onto integration
git rebase @ integration
Le site -i
permet un contrôle interactif. Le site ~0
assure un rebasement détaché (sans déplacer le / d'une autre branche) dans le cas où LAST est un nom de branche. Il peut être omis sinon. La deuxième commande de rebasement déplace simplement le integration
La branche ref en toute sécurité vers la tête détachée intermédiaire - elle n'introduit pas de nouveaux commits. Pour rebaser une structure complexe avec des diamants de fusion etc. considérez --rebase-merges
ou --rebase-merges=rebase-cousins
dans le premier rebasement.
1 votes
draconianoverlord.com/2013/09/07/no-cherry-picking.html (pas mon blog)
2 votes
Le TLDR ; est :
git cherry-pick <one-sha-before-the-oldest-sha-to-pick>..<sha-of-latest-to-pick>