La manière la plus simple est d'utiliser git rebase
. Supposons que vous avez ce réglage :
A -- B -- C -- C1 -- C2 # branche correcte
\
\-- D -- C3 -- C4 # mauvaise branche
Vous voulez déplacer les changements C3,C4 vers la branche correcte.
git checkout -b nouvelle_mauvaise_branche D
git checkout mauvaise_branche
git rebase D --onto branche_correcte
git checkout branche_correcte
git merge branche_correcte mauvaise_branche
git branch -d mauvaise_branche
git branch rename nouvelle_mauvaise_branche mauvaise_branche
Maintenant le réglage est le suivant :
A -- B -- C -- C1 -- C2 -- C3 -- C4 # branche_correcte
\
\ -- D # mauvaise branche
Ensuite, vous devez pousser vos résultats avec force (SI personne n'a encore synchronisé avec votre dépôt distant) :
git push -f remote:branche_correcte
0 votes
Possible duplicate de Git: suppression de commits sélectionnés du référentiel
0 votes
Bonne question @tokland : 99% des développeurs Ruby utilisent git, et le projet sur lequel je travaille est en RoR ... mais je sais que cela pourrait ne pas être une bonne motivation
3 votes
De mon point de vue, ce n'est pas un doublon de ce que halfdan a remarqué, car il s'agit également de déplacer des validations vers une autre branche, pas seulement de les supprimer.