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 conservar ninguno de los cambios que pueden haberse producido en mi servidor local desde la última extracción.
Entonces, ¿hay alguna manera de forzar a Git a sobrescribir con cualquier versión que esté en GitHub, en lugar de molestarme por los conflictos?
Respuestas:
Si realmente desea descartar las confirmaciones que ha realizado localmente, es decir, nunca volver a tenerlas en el historial, no está preguntando cómo extraer, extraer significa fusionar y no necesita fusionar. Todo lo que necesitas hacer es esto:
Yo personalmente recomendaría crear primero una rama de respaldo en su HEAD actual, de modo que si se da cuenta de que esta es una mala idea, no la haya perdido de vista.
Si, por otro lado, desea mantener esas confirmaciones y hacer que parezca que se fusionó con el origen, y hacer que la fusión mantenga solo las versiones de origen, puede usar la
ours
estrategia de fusión:fuente
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):
fuente
X
La opción se pasa a la estrategia de combinación, que es solorecursive
si se combinan dos cabezas, por lo que su comando se quejará"Could not find merge strategy 'theirs'. Available strategies are: octopus ours recursive resolve subtree."
, es una pena, porqueX
se puede configurar en la configuración (por ejemplogit config pull.twohead theirs
) peros
no se puede.