merge pull - Git si rifiuta di unire le storie non correlate su rebase





4 Answers

Nel mio caso, l'errore è stato fatal: refusing to merge unrelated histories su ogni particolare prima richiesta di pull dopo aver aggiunto a distanza un repository git.

L'uso del --allow-unrelated-histories funzionato con la richiesta pull in questo modo:

git pull origin branchname --allow-unrelated-histories

checkout reset push

Durante l' git rebase origin/development viene mostrato il seguente messaggio di errore da git:

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

La mia versione git è 2.9.0. Utilizzato per funzionare bene nella versione precedente.

Come posso continuare questo rebase permettendo storie indipendenti con la bandiera forzata introdotta nella nuova versione?




Ho ricevuto questo errore quando ho impostato per primo un repository locale. Poi è andato su github e ha creato un nuovo repository. Allora ho corso

git remote add origin <repository url>

Quando ho provato a spingere / tirare, ho ottenuto lo stesso errore fatal: unrelated_histories . Ecco come l'ho risolto:

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



Poiché tutte le altre risposte non rispondono effettivamente alla domanda, ecco una soluzione ispirata a questa risposta su una domanda correlata.

Quindi ottieni il tuo errore facendo git rebase:

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

Questo errore in realtà non cancella il rebase, ma ora sei nel mezzo:

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

Quindi ora puoi fare l'unione a mano. Scopri i commit principali del commit unione originale:

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

    test merge commit

Scopri quale dei due unisci genitori è quello che è stato fuso in quello corrente (probabilmente il secondo, verifica con git log 222222222 ), e quindi git log 222222222 l'unione a mano, copiando il messaggio di commit del commit unione originale:

$ 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.



Ho avuto lo stesso problema. Prova questo:

git pull origin master --allow-unrelated-histories 

git push origin master



Related


Tags

git   rebase