Durante il git rebase origin/development
il seguente messaggio di errore viene mostrato da Git:
fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef
La mia versione di Git è la 2.9.0. Funzionava bene nella versione precedente.
Come posso continuare questo rebase permettendo storie non correlate con la bandiera forzata introdotta nella nuova versione?
Il comportamento predefinito è cambiato da Git 2.9:
"git merge" permetteva di unire due rami che non avevano una base comune base per default, il che portava ad una storia nuova di zecca di un progetto esistente creata e poi tirata da un manutentore ignaro, il che permetteva un'inutile storia parallela fusa nel progetto esistente. Il comando è stato insegnato a non permettere questo per di default, con un'opzione di salvataggio `--allow-unrelated-histories da usare in un raro evento che fonde le storie di due progetti che hanno iniziato la loro vita indipendentemente.
Vedi il Git release changelog per maggiori informazioni.
Puoi usare --allow-unrelated-histories
per forzare il merge.
Nel mio caso, l'errore era solo fatale: rifiuta di unire storie non correlate
ad ogni tentativo, specialmente la prima richiesta di pull dopo aver aggiunto da remoto un repository Git.
Usando il flag --allow-unrelated-histories
ha funzionato con una richiesta di pull in questo modo:
git pull origin branchname --allow-unrelated-histories
Ho lottato anche con questo, ma sono riuscito a trovare una soluzione.
Quando vi imbattete nell'errore di cui sopra, prendete semplicemente il commit di merge e poi continuate il rebase:
git cherry-pick -m 1 1234deadbeef1234deadbeef
git rebase --continue