Cómo reparar el error de Git 'Tus cambios locales en los siguientes archivos se sobrescribirán con merge'

El mensaje de error " Sus cambios locales en los siguientes archivos se sobrescribirán mediante fusión " aparece en el mecanismo de control de versiones de Git. Este error ocurre si ha modificado un archivo que también tiene modificaciones en el repositorio remoto.

Error de Git: sus cambios locales en los siguientes archivos se sobrescribirán mediante fusión

Este mensaje de error se evita SI no hay archivos no confirmados que también tengan modificaciones en el repositorio remoto. Al recibir este mensaje, es mejor consultar a los otros miembros de su equipo y pedirles su opinión. Ya sea que desee fusionar sus cambios locales o mantener la versión presente en el repositorio, lo mejor es mantener a todos a bordo.

¿Qué son los repositorios? ¿Qué son empujar y tirar en Git?

Un repositorio es un tipo de almacenamiento de código que los miembros del equipo modifican y obtienen constantemente a través del mecanismo de control de versiones de GitHub. Un " Extraer" significa que está extrayendo la última versión del repositorio a su almacenamiento local / IDE (Entorno de desarrollo integrado) como Pycharm, etc.

Después de un Pull, realiza cambios en el código o agrega más funciones. Una vez que haya terminado, ' Empuje' el código en el repositorio para que se guarden los cambios y se realicen adiciones. El código también es accesible para otras personas.

Si es nuevo en el control de versiones de Github, se recomienda que primero revise todos los conceptos básicos. En este artículo, asumimos que ya tiene conocimientos básicos y conoce todos los entresijos.

¿Cómo solucionar 'Tus cambios locales en los siguientes archivos se sobrescribirán por fusión'?

La resolución de este mensaje de error depende de lo que desee hacer. Puede descartar sus cambios locales y extraer los que están en el repositorio o puede guardar sus cambios locales en un escondite y extraer la versión del repositorio. Todo depende de tu preferencia.

Por lo tanto, le recomendamos que consulte con los miembros de su equipo y asegúrese de que todos estén en la misma página antes de seguir adelante. Si comete un error o empuja la versión incorrecta, podría afectar a todo el equipo.

Método 1: forzar una extracción para sobrescribir los cambios locales

Si no le importan los cambios realizados localmente y desea obtener el código del repositorio, puede forzar una extracción. Esto sobrescribirá todos los cambios locales realizados en su computadora y aparecerá una copia duplicada de la versión en el repositorio.

Ejecute los siguientes comandos en su IDE:

 git reset - extracción de git duro 

Esto destruirá instantáneamente todos sus cambios locales, así que asegúrese de saber lo que está haciendo y no necesita sus cambios locales.

Método 2: mantener ambos cambios (local y del repositorio)

Si desea conservar ambos cambios (cambios realizados localmente y cambios presentes en el repositorio), puede agregar y confirmar sus cambios. Cuando tire, obviamente habrá un conflicto de fusión. Aquí puede usar las herramientas en su IDE (como Difftool y mergetool) para comparar las dos piezas de código y determinar qué cambios mantener y cuáles eliminar. Este es el camino del medio; no se perderán cambios hasta que los elimine manualmente.

 git add $ the_file_under_error git commit git pull 

Cuando obtenga un conflicto de fusión, haga estallar las herramientas de resolución de conflictos y verifique línea por línea.

Método 3: mantener ambos cambios PERO no comprometerse

Esta situación ocurre de vez en cuando donde los desarrolladores no están listos para comprometerse porque hay un código parcialmente roto que está depurando. Aquí podemos guardar los cambios de forma segura, extraer la versión del repositorio y luego quitar el código.

 git stash save --keep-index 

o

 escondite 
 git pull git stash pop 

Si hay algunos conflictos después de reventar el alijo, debe resolverlos de la manera habitual. También puedes usar el comando:

 git alijo aplicar 

en lugar de pop si no está listo para perder el código oculto debido a conflictos.

Si la fusión no parece una opción viable para usted, considere hacer una nueva versión. Rebasar es el proceso de mover o combinar una secuencia de confirmaciones a una nueva confirmación base. En el caso de rebase, cambie el código a:

 git stash git pull --rebase origin master git stash pop 

Método 4: realice cambios en partes 'específicas' de su código

Si desea realizar cambios en partes específicas del código y no desea reemplazar todo, puede confirmar todo lo que no desea sobrescribir y luego seguir el método 3. Puede usar el siguiente comando para los cambios que desea desea sobrescribir desde la versión presente en el repositorio:

 ruta de pago de git / a / archivo / a / revertir 

o

 git checkout HEAD ^ ruta / a / archivo / a / revertir 

Además, debe asegurarse de que el archivo no esté preparado mediante:

 git reset HEAD path / to / file / to / revert 

Luego proceda con el comando de extracción:

 git pull 

Esto intentará recuperar la versión del repositorio.

Artículos De Interés