Github rechaza unir historias no relacionadas


Photo by Sebastian Palomino on Pexels.com

Cuando el git bash nos dice: Github refusing to merge unrelated histories (Github rechaza unir historias no relacionadas) tal y como podria parecer una posible solución es

$git push origin master --allow-unrelated-histories

Ahora si lo que quiere es hacer merge:

$git merge origin master --allow-unrelated-histories

De esta manera, se garantiza que las historias no relacionadas o inconexas (unrelated-histories) puedan ser conectadas al repositorio.

Opcion B

Es posible que la solucion no siempre funcione, en realidad el problema es que no estamos especificando el `upstream’ a dónde enviar los cambios

$ git push origin master

Ahora según el error en la descripción es probable que la historia difiera por lo que puede forzar el push

$ git push origin master --force

Aunque lo mejor sería hacer un mergey después subir los cambios

$ git pull origin master
$ git push origin master

OPCION C

Pero si si su remoto tiene un commit que su local no tiene, y viceversa. No hay un ancestro común y por lo tanto no se puede hacer merge.

Si el código del remoto es ligeramente parecido a tu código local y efectivamente quiere hacer un merge, la solución sería:

git fetch --all
git reset --soft origin/master
git add --all
git commit -am "commit sobre l primer commit remoto"
git push origin master

Si de verdad los códigos no tienen nada que ver, puede hacer:

git push -f --set-upstream origin master

Y con eso va a pisar el remoto forzadamente con sus commits locales. Ojo que con esto se perderá lo que hay en el remoto.