Cela peut être fait en faisant un rebasage interactif.
Si vous avez branche master
à engager A
, puis vous avez créé la branche my-branch
avec B
engage, C
, D
, E
et F
. Vous voulez écraser les validations B
, C
et D
en B'
.
Assurez-vous que votre branche actuelle est my-branch
, et commencer un rebasage interactif:
git rebase -i master
Cela ouvrira votre éditeur avec la liste des commits qui sont mues. Chaque ligne représente un commit, et le premier mot sur cette ligne indique la commande à exécuter sur ce commit. Laissez la première validation (B
) en tant que pick
et modifiez les commandes pour les deux prochains commits (C
et D
) en squash
. Enregistrez et fermez l'éditeur.
Après git a terminé le traitement engage B
, C
et D
, un nouvel éditeur ouvrira avec un message de validation pour le nouveau commit B'
. Cela contiendra une combinaison des messages de validation des commits d'origine, mais vous pouvez le modifier comme vous le souhaitez. Une fois que le message de validation est ce que vous voulez qu'il soit, enregistrez et fermez l'éditeur.
Une fois git a terminé le traitement du reste des commits sur la branche my-branch
, engage sur my-branch
sera B'
, E
et F
.
Notez que vous ne devez effectuer un rebasage que si vous n'avez pas activé vos validations. Rebasing va changer les hachages de vos commits, ce qui causera des problèmes si quelqu'un d'autre a déjà tiré les commits d'origine.
la réponse est exactement la même que dans la question que vous citez –
vous avez raison @ChrisMaes, ne se rendait pas compte, merci – vaskort