git · Git
Le message
fatal: refusing to merge unrelated histories
Ce que cela veut dire
Les deux côtés que vous fusionnez n'ont aucun ancêtre commun : pour git, ce sont deux histoires étrangères l'une à l'autre. Cela arrive quand vous avez démarré en local avec git init, fait quelques commits, puis ajouté un dépôt distant qui avait déjà ses propres commits avant de faire un pull. --allow-unrelated-histories les fusionne bien, mais il soude deux histoires étrangères en un seul commit, ce qui est très difficile à défaire ensuite ; avec seulement quelques commits locaux, il est plus propre de cloner le distant à neuf et d'y recopier vos fichiers.
Le correctif
git pull origin main --allow-unrelated-histories- Émis par
- git
- Git
- 29
Presque toutes les erreurs de git sont un refus qui signifie « faire cela depuis cet état ferait perdre quelque chose » ; fatal: veut dire que git s'est arrêté sans rien modifier, et les lignes hint: sous la première portent souvent le vrai remède.
Lire un message d’erreur
- Lisez à partir de la première ligne. Plus on descend, plus il s’agit des entrailles de l’outil ; la cause est généralement en haut.
- S’il y a un fichier et un numéro de ligne, commencez là — pas la première image de la pile, mais la ligne la plus haute qui nomme un fichier de vous.
- Cherchez le message tel quel, mais retirez d’abord vos chemins et vos noms de variables : c’est cela qui empêche la correspondance.
- La même situation se formule autrement selon la version de l’outil. Si les résultats sonnent faux, ajoutez le numéro de version.
- Avant de coller un correctif, vérifiez ce qu’il jette. Certains sont irréversibles.
Questions fréquentes
Q. Que veut dire « fatal: refusing to merge unrelated histories » ?
Les deux côtés que vous fusionnez n'ont aucun ancêtre commun : pour git, ce sont deux histoires étrangères l'une à l'autre. Cela arrive quand vous avez démarré en local avec git init, fait quelques commits, puis ajouté un dépôt distant qui avait déjà ses propres commits avant de faire un pull. --allow-unrelated-histories les fusionne bien, mais il soude deux histoires étrangères en un seul commit, ce qui est très difficile à défaire ensuite ; avec seulement quelques commits locaux, il est plus propre de cloner le distant à neuf et d'y recopier vos fichiers.
Q. Comment le corriger ?
git pull origin main --allow-unrelated-histories — avant de le lancer, vérifiez plus haut ce que cette commande jette.
Q. Quel outil émet cela ?
git. Cela relève de Git, et le message compte 6 mots.