Pregunta

Estoy tratando de extraer el código de mi repositorio de GitHub en mi servidor, pero la extracción sigue fallando debido a conflictos de fusión. No quiero mantener ninguno de los cambios que puedan haber ocurrido en mi servidor local desde la última atracción.

Entonces, ¿hay alguna manera de obligar a GIT a sobrescribir con cualquier versión en Github, en lugar de molestarme de conflictos?

¿Fue útil?

Solución

Si realmente quieres descartar el compromiso Has hecho localmente, es decir, nunca más los tienes en la historia, no estás preguntando cómo tirar, tirar significa fusionar y no necesitas fusionarte. Todo lo que necesitas hacer es esto:

# fetch from the default remote, origin
git fetch
# reset your current branch (master) to origin's master
git reset --hard origin/master

Personalmente, recomiendo crear una rama de respaldo en su cabeza actual, de modo que si te das cuenta de que esta era una mala idea, no has perdido la pista.

Si, por otro lado, desea mantener esos compromisos y hacer que parezca que se fusionó con el origen, y hace que la fusión mantenga las versiones de Origin solo, puede usar el ours Estrategia de fusión:

# fetch from the default remote, origin
git fetch
# create a branch at your current master
git branch old-master
# reset to origin's master
git reset --hard origin/master
# merge your old master, keeping "our" (origin/master's) content
git merge -s ours old-master

Otros consejos

Puede usar la respuesta del enlace duplicado señalado por NVM.

O puede resolver conflictos utilizando sus cambios (pero algunos de sus cambios podrían mantenerse si no entran en conflicto con la versión remota):

git pull -s recursive -X theirs
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top