Git nægter at flette historier, der ikke er relateret til hinanden, ved genbasering

Under git rebase origin/development vises følgende fejlmeddelelse fra Git:

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

Min Git-version er 2.9.0. Det plejede at fungere fint i den tidligere version.

Hvordan kan jeg fortsætte denne rebasering, der tillader uvedkommende historier med det tvungne flag, der er indført i den nye version?

Standardadfærden er ændret siden Git 2.9:

"git merge" plejede at tillade sammenlægning af to grene, der ikke har nogen fælles base som standard, hvilket førte til en helt ny historie af en eksisterende projekt oprettet og derefter blive trukket af en intetanende vedligeholder, hvilket tillod en unødvendig parallel historik, der blev flettet ind i den eksisterende projekt. Kommandoen er blevet lært at ikke tillade dette af standard, med en flugtluge --allow-unrelated-histories option der skal bruges i sjældne tilfælde, hvor historier fra to projekter fusioneres der startede deres liv uafhængigt af hinanden.

Se Git release changelog for flere oplysninger.

Du kan bruge --allow-unrelated-histories for at tvinge sammenlægningen til at ske.

Kommentarer (6)

I mit tilfælde var fejlen bare fatal: refusing to merge unrelated histories ved hvert forsøg, især den første pull request efter fjerntilføjelse af et Git-repositorium.

Brug af --allow-unrelated-histories-flaget virkede med en pull request på denne måde:

git pull origin branchname --allow-unrelated-histories
Kommentarer (10)

Jeg kæmpede også med dette, men det lykkedes mig at finde en løsning.

Når du løber ind i ovenstående fejl, skal du bare vælge merge commit'et og derefter fortsætte med at rebasere:

git cherry-pick -m 1 1234deadbeef1234deadbeef
git rebase --continue
Kommentarer (1)