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