Abandonner la fusion dans Git
Par exemple, Mario souhaite extraire les dernières modifications apportées à son référentiel nommé save-princess
à partir du référentiel distant. Mario utilise git pull origin branch1
mais reçoit une erreur de conflit de fusion car le fichier modifié localement a été modifié dans le référentiel distant save-princess
par Luigi
.
Un conflit de fusion se produit également, si par exemple, Luigi
a édité le même fichier sur la même ligne que Mario
, ou Luigi
a supprimé le fichier que Mario
était en train d’éditer, ou même si Mario
essaie d’ajouter le même fichier avec le même nom qui est déjà ajouté par Luigi
. Git affichera un message si un conflit de fusion s’est produit pendant git pull
. En termes simples, un conflit de fusion se produit lorsque deux modifications affectent le même fichier sur la même ligne.
Voici les quelques façons de résoudre les conflits de fusion,
Résoudre les conflits de fusion en cachant les modifications dans Git
Une façon de résoudre les conflits consiste à cacher les modifications apportées localement, puis à restaurer à nouveau les modifications cachées une fois le conflit de fusion disparu. Cela peut être réalisé grâce à :
-
Rangez les modifications
git stash
-
Récupérer les modifications du référentiel distant.
git fetch
git pull origin save-princess
Ici,
save-princess
est le nom de la branche présente à la fois dans les référentiels locaux et distants. -
Pop les changements cachés
git stash pop
Si des problèmes surviennent après la fusion, vous pouvez toujours annuler les modifications actuelles avant la fusion.
Pour annuler la fusion, vous pouvez utiliser :
git merge --abort
La commande ci-dessus est similaire à reset, qui réinitialise notre commit à la version actuelle avant la fusion.
git reset --hard