Git refusant de fusionner sans rapport avec les histoires sur rebase
Pendant git rebase origin/development
le message d'erreur suivant est affiché à partir de Git:
fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef
Mon Git version 2.9.0. Il l'habitude de travailler bien dans la version précédente.
Comment puis-je continuer cette rebase permettant sans rapport avec les histoires avec l'forcé drapeau introduites dans la nouvelle version?
- Avec tout le respect le plus de vote réponse ne résout pas cette question de façon directe. La question demande
git-rebase
situation alors que la réponse donne un drapeau pourgit-merge
- ce n'est pas ce qu'est un a accepté de répondre c'est pour. Les gens vont automatiquement trouver la réponse avec le plus de voix à cause de la valeur par défaut tri par les votes.
- Dans le cas où quelqu'un d'autre fait la même erreur, j'ai eu cette erreur après avoir accidentellement à l'aide de
git pull [repo URL]
au lieu degit clone [repo URL]
- Double Possible de Permettre la fusion sans rapport avec les antécédents de git rebase
- Un gâchis qui a été fait ici par le fait que le titre ne précise pas que c'est dans le contexte d'un rebase, de sorte que votre question est en puisant dans les Googlers qui sont l'obtention de cette erreur dans différents contextes et upvoting une réponse qui n'est pas réellement s'appliquer à la question que vous avez posée. Il ne peut pas être nettoyés facilement, de sorte que les incohérent Q&Une paire de rester sur le site et haut dans les résultats de recherche Google à jamais. La morale de l'histoire est que les titres des questions d'importance!
- ne peuvent pas être nettoyés facilement maintenant" Pourquoi ne pouvons-nous pas simplement le corriger le titre au moins à couper le mauvais chemin de mème de l'évolution? Ai-je raté quelque chose?
- La meilleure réponse à cette question peut effectivement être trouvé dans ce DONC, la question. Il est plus sûr, plus précis et mieux expliqué que le haut de réponse ici.
Vous devez vous connecter pour publier un commentaire.
Le comportement par défaut a changé depuis Git 2.9:
Voir le Git version changelog pour plus d'informations.
Vous pouvez utiliser
--allow-unrelated-histories
à la force de la fusion pour produire.--allow-unrelated-histories
de façon permanente?git pull
ainsi. A été dans cet "événement rare qui fusionne les histoires de deux projets qui ont commencé leur vie de façon indépendante".git --work-tree="." pull --allow-unrelated-histories
Dans mon cas, l'erreur est juste
fatal: refusing to merge unrelated histories
sur tous les essayer, surtout la première demande d'extraction à distance après l'ajout d'un dépôt Git.À l'aide de la
--allow-unrelated-histories
drapeau travaillé avec une demande d'extraction de cette façon:git clone
.--allow-unrelated-histories
??--allow-unrelated-histories
ou lagit clone
pointe. help.github.com/en/articles/...Essayez la commande suivante:
Cela devrait résoudre votre problème.
J'ai eu cette erreur lorsque j'ai mis en place un référentiel local d'abord. Puis je suis allé à GitHub et a créé un nouveau référentiel. Ensuite, j'ai couru
Quand j'ai essayé de pousser/tirer, j'ai eu le même
fatal: unrelated_histories
erreur.Voici comment je l'ai corrigé:
.git
dossier, a courugit init
et fait ce que Adithya dit, sauf pour la fusion une partie.Pour cela, entrez la commande:
Par exemple,
Référence:
GitHub sans rapport avec les histoires de problème
J'ai eu le même problème. Essayez ceci:
Vous sera acheminé à un Vim fenêtre d'édition:
git push --set-upstream origin <branch>
Essayer
git pull --rebase development
git pull --rebase=preserve --allow-unrelated-histories development
newOrigin branch
plutôt quedevelopment
), a ajouté la première s'engager vers le haut de ma branche locale, éliminant presque tout d'elle. Je voulais que la première révision de la nouvelle télécommande à être à la base.Puisque tous les autres réponses ne sont pas réellement répondre à la question, voici une solution inspirée par cette réponse sur une question connexe.
Ainsi, vous obtenez votre erreur effectuer
git rebase
:Cette erreur ne fait pas annuler le rebase, mais vous êtes maintenant au milieu d'elle:
De sorte que vous pouvez maintenant faire du publipostage en main. Découvrez le parent s'engage de la fusion d'origine commettre:
De savoir qui de la fusion de deux parents est celui qui a été fusionné dans l'actuel (probablement le second, vérifier avec
git log 222222222
), et puis faire de la fusion à la main, en copiant le message de validation de la fusion d'origine commettre:J'ai eu le même problème. Le problème est à distance avait quelque chose de prévention de cette.
J'ai d'abord créé un référentiel local. J'ai ajouté un
LICENSE
etREADME.md
fichier à my locale et engagés.Puis je voulais un dépôt distant j'ai donc créé un sur GitHub. Ici j'ai fait une erreur de vérification de la "Initialiser ce référentiel avec un README", qui a créé un fichier README.docteur en médecine à distance aussi.
Alors maintenant, quand j'ai couru
J'ai eu:
Maintenant pour surmonter ce que je n'ai
Qui a entraîné dans l'erreur ci-dessous:
J'ai essayé:
Résultat:
Solution:
J'ai enlevé le dépôt distant et créé un nouveau (je pense que la suppression de fichiers
README
pourrait avoir travaillé) et après que le ci-dessous travaillé:git push --force ...
serait une solution adéquate à l'étape 1 dans ce cas particulierCela a fonctionné pour moi:
--force
est une action dangereuse. ^^!J'ai eu du mal avec cela, mais j'ai réussi à trouver une solution de contournement.
Lorsque vous exécutez dans l'erreur ci-dessus, juste cherry-pick de la fusion s'engager puis de continuer le rebase: