Git : Comment fusionner deux historiques sans base commune
Corrigez l'erreur : refusing to merge unrelated histories de Git grâce à un simple paramètre dans votre commande git merge !
Article publié le 27/05/2024, dernière mise à jour le 27/05/2024
Si vous êtes déjà tombé sur ce genre de message d’erreur avec Git :
fatal: refusing to merge unrelated histories
C’est probablement que quelque chose n’a pas été fait correctement… Mais ce n’est pas grave !
Le problème
Cette erreur arrive souvent (mais pas exclusivement) au début d’un projet.
Par exemple, vous récupérez un projet vide depuis GitHub/GitLab/… et vous commencez directement à travailler sur une branche dev.
En parallèle, vous ajoutez un fichier (README.md par exemple) sur la branche main.
Mais au moment de faire un git merge, Git refusera de faire quoi que ce soit, car la base des deux historiques est complètement différente.
Heureusement, la solution est très simple
La solution
Pour forcer Git à fusionner les deux historiques, il vous suffira de relancer votre commande git merge avec l’option suivante : --allow-unrelated-histories
Dans le cas où certains fichiers existent dans les deux branches avec des contenus différents, alors vous devrez résoudre le conflit.
Mais une fois fait, votre fusion sera parfaitement fonctionnelle !
À savoir
Auparavant, git merge
acceptait de fusionner deux historiques même lorsqu’il était différent, mais cette fonctionnalité a changé depuis la version 2.9
Voir le changelog
La commande git pull
, quant à elle, passe automatiquement l’option --allow-unrelated-histories
par défaut, ce qui permet de ne pas avoir ce genre de problème, notamment au début du projet.
Aucun commentaire pour l'instant