Git Annuler la fusion

Azhar Bashir Khan 6 février 2022
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

Article connexe - Git Merge