Git Annuler la fusion
 
Dans ce tutoriel, nous verrons comment annuler une fusion dans Git.
Dans Git, nous fusionnons une branche avec une autre pour intégrer les changements de l’autre branche dans le HEAD de la branche actuelle.
Parfois, nous pouvons souhaiter annuler cette fusion. Nous pouvons utiliser la commande Git git reset pour annuler une fusion git.
Nous allons maintenant illustrer cela par un exemple.
Utiliser le git reset pour annuler une fusion dans Git
Supposons que nous ayons fusionné une branche à savoir. feature1 avec la branche main pour intégrer les modifications de cette branche dans la branche main.
Maintenant, nous décidons d’annuler cette fusion. Nous pouvons utiliser git reset pour cela.
Tout d’abord, nous devons trouver le commit sha qui se trouve avant la fusion à partir du journal dans Git. Pour cela, nous pouvons utiliser la commande git log.
Nous allons exécuter la commande git log comme suit.
$ git log --oneline
0e25143 Merge branch 'feature1'
23ad9ad Add the initial code base
Nous pouvons voir que le 0e25143 est le commit sha de la fusion de la branche feature1 dans la branche main. Le 23ad9ad est le commit sha du commit avant de fusionner la branche feature1.
Nous allons utiliser la commande git reset avec l’option --hard pour réinitialiser la branche main à l’état avant la fusion.
La syntaxe de la commande git reset est ci-dessous.
git reset --hard commit_sha_before_merge
Nous allons maintenant exécuter le git reset comme suit.
$ git reset --hard 23ad9ad
Ainsi, nous avons maintenant annulé la fusion (c’est-à-dire) réinitialisé le HEAD de la branche actuelle viz. main au commit avant la fusion.
Veuillez noter que toutes les modifications non validées ou non stockées seront perdues après l’exécution de la commande git reset donnée ci-dessus.
On peut aussi utiliser la commande git reset comme suit, surtout si le dernier commit est de la fusion.
$ git reset --hard HEAD~1
Il réinitialise le HEAD de la branche actuelle par un commit.
De même, nous pouvons également procéder comme suit.
$ git reset --hard ORIG_HEAD
Le ORIG_HEAD pointe vers le commit avant que la fusion n’ait lieu.
Une option plus sûre consiste à utiliser l’option --merge avec git reset comme suit.
$ git reset --merge ORIG_HEAD
L’option --merge avec la commande git reset provoque la réinitialisation de l’index et la mise à jour des fichiers qui sont différents entre le commit et le HEAD; mais il conservera les modifications des fichiers qui sont différentes entre l’index et l’arbre de travail (c’est-à-dire) les modifications qui n’ont pas encore été ajoutées à l’index.
Article connexe - Git Reset
- Annuler la réinitialisation de Git
- Annuler les modifications dans Git
- Supprimer les commits locaux dans Git
- Annuler la dernière validation dans un référentiel Git distant
- Rétablir un dépôt Git par l'ID du commit
- Supprimer les commits non poussés dans Git