Question Git refuse de fusionner des histoires sans rapport sur rebase


Pendant git rebase origin/development message d'erreur suivant est montré à partir de git:

fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef

Ma version de git est 2.9.0. Utilisé pour fonctionner correctement dans la version précédente.

Comment puis-je continuer ce rebase permettant des historiques non liés avec le drapeau forcé introduit dans la nouvelle version?


987
2018-06-21 07:23


origine


Réponses:


Le comportement par défaut a changé depuis git 2.9:

"git merge" permet de fusionner deux branches qui n'ont pas de      base par défaut, ce qui a conduit à un tout nouvel historique d'un existant      projet créé et puis être tiré par un mainteneur sans méfiance,      qui a permis une histoire parallèle inutile fusionnée dans le      projet existant. La commande a été enseignée ne pas permettre cela par      défaut, avec une trappe d'évacuation --allow-unrelated-histories option      être utilisé dans un événement rare qui fusionne l'histoire de deux projets      qui a commencé leur vie de façon indépendante.

Voir le git release changelog pour plus d'informations.

Vous pouvez utiliser --allow-unrelated-histories pour forcer la fusion à se produire.


1335
2018-06-21 07:26



Dans mon cas, l'erreur était juste fatal: refusing to merge unrelated histories sur chaque première demande de tirage après avoir ajouté à distance un repo git.

En utilisant --allow-unrelated-histories drapeau travaillé avec la demande de tirage de cette façon:

git pull origin branchname --allow-unrelated-histories


547
2017-10-18 12:13



Essayez la commande suivante

git pull origin master --allow-unrelated-histories

Cela devrait résoudre votre problème.


292
2017-11-20 16:41



J'ai eu cette erreur quand j'ai d'abord mis en place un dépôt local. Puis est allé à github et a créé un nouveau référentiel. Puis j'ai couru

git remote add origin <repository url>

Quand j'ai essayé de pousser / tirer, j'ai eu le même fatal: unrelated_histories Erreur. Voici comment je l'ai réparé:

git pull origin master --allow-unrelated-histories
git merge origin origin/master
... add and commit here...
git push origin master

160
2018-06-08 17:41



Essayer git pull --rebase development


32
2018-01-20 14:05



J'ai lutté avec cela aussi mais réussi à trouver une solution de contournement.

Lorsque vous rencontrez l'erreur ci-dessus, sélectionnez la validation de la fusion, puis continuez la rebase:

git cherry-pick -m 1 1234deadbeef1234deadbeef
git rebase --continue

6
2017-08-30 15:20



Puisque toutes les autres réponses ne répondent pas à la question, voici une solution inspirée par cette réponse sur une question connexe.

Donc, vous obtenez votre erreur en faisant git rebase:

$ git rebase origin/development
fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef

Cette erreur n'annule pas réellement la rebase, mais vous êtes maintenant au milieu:

$ git status
interactive rebase in progress; onto 4321beefdead
Last command done (1 command done):
   pick 1234deadbeef1234deadbeef test merge commit

Donc vous pouvez maintenant faire la fusion à la main. Découvrez les validations parent de la validation de fusion d'origine:

$ git log -1 1234deadbeef1234deadbeef
commit 1234deadbeef1234deadbeef
Merge: 111111111 222222222
Author: Hans Dampf
Date:   Wed Jun 6 18:04:35 2018 +0200

    test merge commit

Découvrez lequel des deux parents de fusion est celui qui a été fusionné dans le courant (probablement le second, vérifier avec git log 222222222), puis effectuez la fusion à la main, en copiant le message de validation de la validation de fusion d'origine:

$ git merge --allow-unrelated 222222222 --no-commit
Automatic merge went well; stopped before committing as requested
$ git commit -C 1234deadbeef1234deadbeef
[detached HEAD 909af09ec] test merge commit
 Date: Wed Jun 6 18:04:35 2018 +0200
$ git rebase --continue
Successfully rebased and updated refs/heads/test-branch.

4
2018-06-22 09:04