Resolver conflictos utilizando cambios remotos al realizar operaciones remotas desde Git
Estoy intentando extraer código de mi repositorio de GitHub en mi servidor, pero la extracción sigue fallando debido a conflictos de fusión. No quiero conservar ninguno de los cambios que puedan haber ocurrido en mi servidor local desde la última extracción.
Entonces, ¿hay alguna manera de obligar a Git a sobrescribir con cualquier versión que esté en GitHub, en lugar de molestarme por los conflictos?
Si realmente desea descartar las confirmaciones que realizó localmente, es decir, nunca volver a tenerlas en el historial, no está preguntando cómo extraer: extraer significa fusionar y no es necesario fusionar. 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, recomendaría crear primero una rama de respaldo en su HEAD actual, de modo que si se da cuenta de que fue una mala idea, no la haya perdido de vista.
Si, por otro lado, desea conservar esas confirmaciones y hacer que parezca que se fusionó con el origen, y hacer que la fusión mantenga las versiones del origen únicamente, puede usar la 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
Puede utilizar la respuesta del enlace duplicado señalado por nvm.
O puede resolver conflictos utilizando sus cambios (pero algunos de sus cambios pueden conservarse si no entran en conflicto con la versión remota):
git pull -s recursive -X theirs