Git weigert ongerelateerde geschiedenissen samen te voegen op rebase

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.

Commentaren (6)

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
Commentaren (10)

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
Commentaren (1)