Vous pouvez annuler une fusion Git en utilisant la commande git reset -merge. Cette commande modifie tous les fichiers qui sont différents entre votre dépôt actuel et un commit particulier. Il n’y a pas de commande « git undo merge » mais la commande git reset fonctionne bien pour annuler une fusion.
Comment annuler une fusion Git
Vous venez de fusionner deux branches que vous n’êtes pas prêt à fusionner ? Ne vous inquiétez pas, Git a une solution pour vous. Les développeurs fusionnent tout le temps des branches qui ne devraient pas l’être, donc vous n’êtes certainement pas le seul à connaître ce problème.
Dans ce tutoriel, nous allons parler de la fusion de git et de la façon d’annuler une fusion de git. Nous allons vous présenter un exemple de deux approches que vous pouvez utiliser pour annuler une fusion git. Commençons !
Fusion de données
Git s’appuie fortement sur les branches. Celles-ci sont utilisées pour maintenir des lignes de développement séparées à l’intérieur d’un projet. Les branches vous permettent de travailler sur plusieurs versions différentes d’un dépôt à la fois. La fusion combine deux branches en une seule.
Vous pouvez fusionner une branche dans une autre branche dès que vous êtes prêt. Cela signifie que vous pouvez développer une fonctionnalité ou une correction de bogue sur une branche séparée. Vous pouvez ensuite l’intégrer à votre projet principal plus tard.
Fusion Git Undo
Pour annuler une fusion git, vous devez trouver l’ID de commit de votre dernier commit. Ensuite, vous devez utiliser la commande git reset pour remettre votre dépôt à son état dans ce commit. Il n’y a pas de commande « git revert merge ».
Les étapes pour annuler une fusion, dans l’ordre, sont les suivantes :
git log OU git reflog (pour trouver l’ID du dernier commit)
git reset -merge (pour revenir au commit que vous avez spécifié)
Supposons que nous ayons accidentellement fusionné deux branches qui ne devraient pas l’être. Nous pouvons annuler ces changements.
Annuler la fusion Exemple de Git
Trouver l’identifiant de l’engagement
Pour commencer, nous devons trouver l’ID du commit avant notre fusion sur notre dépôt à distance. Vous pouvez le faire en utilisant git reflog :
git reflog
Exécutons cette commande sur un dépôt Git :
ac7188c HEAD@{6} : commit : feat : Exemple de code à pousser pour le tutoriel innerText et innerHTML
a9fdeb5 HEAD@{7} : commit (initial) : feat : Fusionner dev-fix-7 en master
Cette commande nous indique que le dernier commit a le hash a9fdeb5.
Vous pouvez également utiliser la commande git log. Mais, la commande reflog renvoie un résultat plus facile à lire. C’est pourquoi nous avons choisi d’utiliser reflog au lieu de la commande log.
Revenir à la commande Commit
Nous pouvons utiliser ce hachage pour annuler le commit de fusion avec la commande git reset -merge :
git reset –merge a9fdeb5
Cette commande réinitialise notre dépôt dans l’état où il se trouvait dans le commit a9fdeb5 sur la branche master.
Le drapeau -merge réinitialise un index et met à jour tous les fichiers qui sont différents entre l’état actuel de votre dépôt et la branche HEAD.
Ce drapeau ne réinitialise pas les fichiers avec des modifications qui n’ont pas été ajoutées à un commit. Cela est plus sûr que d’utiliser la commande git reset -hard souvent recommandée.
Une fois que nous avons réinitialisé notre dépôt, nous pouvons apporter les modifications pertinentes à notre code. Ensuite, nous pouvons les pousser vers une branche distante en utilisant la commande git push.
Un mot sur la sténographie HEAD
Le mot-clé Git HEAD fait référence au dernier commit de votre dépôt. Vous pouvez utiliser la sténographie Git HEAD pour annuler une fusion :
git reset –merge HEAD~1
Cette commande rétablit notre dépôt au dernier commit. HEAD fait référence à l’état actuel de votre dépôt ; HEAD~1 est le dernier commit de votre dépôt.
Cette commande rétablit notre dépôt au dernier commit. HEAD fait référence à l’état actuel de votre dépôt ; HEAD~1 est le dernier commit de votre dépôt.
Conclusion
La commande git reset annule une fusion. Le drapeau -merge réinitialise un dépôt mais conserve les fichiers auxquels des modifications ont été apportées et qui n’ont pas été ajoutés à votre dépôt.
Vous souhaitez en savoir plus sur Git ? Consultez notre guide « Comment apprendre Git ». Dans ce guide, vous trouverez des conseils sur la façon d’apprendre Git et une liste des principales ressources d’apprentissage.