Tijdens git rebase origin/development
wordt de volgende foutmelding van Git getoond:
fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef
Mijn Git versie is 2.9.0. Het werkte prima in de vorige versie.
Hoe kan ik doorgaan met deze rebase waardoor ongerelateerde geschiedenissen met de geforceerde vlag geïntroduceerd in de nieuwe release?
Het standaard gedrag is veranderd sinds Git 2.9:
"git merge" stond standaard het samenvoegen van twee branches toe die geen gemeenschappelijke basis hebben, wat leidde tot een gloednieuwe historie van een bestaand project aangemaakt werd en dan getrokken werd door een nietsvermoedende beheerder, waardoor een onnodige parallelle historie samengevoegd werd in het bestaande project. Het commando is geleerd om dit niet standaard toe te staan standaard toe te staan, met een ontsnappingsluik
--allow-unrelated-histories
optie om te gebruiken in het zeldzame geval dat geschiedenissen van twee projecten worden samengevoegd die hun leven onafhankelijk van elkaar zijn begonnen.
Zie de Git release changelog voor meer informatie.
Je kunt --allow-unrelated-histories
gebruiken om de samenvoeging te forceren.
In mijn geval was de fout gewoon fatal: refusing to merge unrelated histories
bij elke poging, vooral de eerste pull request na het op afstand toevoegen van een Git repository.
Het gebruik van de --allow-unrelated-histories
vlag werkte met een pull request op deze manier:
git pull origin branchname --allow-unrelated-histories
Ik heb hier ook mee geworsteld, maar ik heb een oplossing gevonden.
Als je de bovenstaande fout tegenkomt, haal dan gewoon de merge commit eruit en ga dan verder met de rebase:
git cherry-pick -m 1 1234deadbeef1234deadbeef
git rebase --continue