Resolver conflictos utilizando cambios remotos al realizar operaciones remotas desde Git

Resuelto David Tuite asked hace 13 años • 2 respuestas

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?

David Tuite avatar Jan 25 '11 00:01 David Tuite
Aceptado

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 oursestrategia 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
Cascabel avatar Jan 24 '2011 21:01 Cascabel

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
Antoine Pelisse avatar Jan 24 '2011 18:01 Antoine Pelisse