El mensaje de error “ Sus cambios locales a los siguientes archivos serán sobrescritos por fusión ” ocurre 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.
Este mensaje de error se evita SI no hay archivos no confirmados que también tengan modificaciones en el repositorio remoto. Cuando experimente este mensaje, es mejor consultar a los otros miembros de su equipo y pedir su opinión. Ya sea que desee fusionar sus cambios locales o mantener la versión presente en el repositorio, es mejor mantener a todos a bordo.
¿Qué son los repositorios? ¿Qué son push and pull 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. A ‘ Jalar’ significa que está extrayendo la última versión del repositorio en 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, usted ‘ Empujar’ 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 tienes los conocimientos básicos y conoces todos los entresijos.
¿Cómo arreglar ‘Sus cambios locales en los siguientes archivos serán sobrescritos 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 del repositorio o puede guardar sus cambios locales en un alijo 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 se asegure de que todos están en el misma página antes de seguir adelante. Si se compromete incorrectamente o presiona la versión incorrecta, podría afectar a todo el equipo.
Método 1: forzar una extracción para sobrescribir los cambios locales
Si usted no se preocupan por 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 -- hard git pull
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 (locales y del repositorio)
Si desea mantener 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 conservar y cuáles eliminar. Este es el camino del medio; no se perderán los cambios hasta que los elimine manualmente.
git add $the_file_under_error git commit git pull
Cuando obtenga un conflicto de combinación, abra esas 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 cuando los desarrolladores no están listos para comprometerse porque hay algún código parcialmente roto que está depurando. Aquí podemos ocultar los cambios de forma segura, extraer la versión del repositorio y luego desbloquear su código.
git stash save --keep-index
o
git stash
git pull git stash pop
Si hay algunos conflictos después de abrir el alijo, debe resolverlos de la manera habitual. También puedes usar el comando:
git stash apply
en lugar de pop si no está listo para perder el código escondido debido a conflictos.
Si fusionar no parece una opción viable para usted, considere hacer una reorganizació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 comprometerse todo lo que no desea sobrescribir y luego siga el método 3. Puede usar el siguiente comando para los cambios que desea sobrescribir de la versión presente en el repositorio:
git checkout path/to/file/to/revert
o
git checkout HEAD^ path/to/file/to/revert
Además, debe asegurarse de que el archivo no esté preparado a través de:
git reset HEAD path/to/file/to/revert
Luego proceda con el comando pull:
git pull
Esto intentará obtener la versión del repositorio.
Leer siguiente
- ¿Cómo fusionar dos ramas en Git?
- Cómo corregir el error de Git: primero debe resolver su índice actual
- Cómo corregir el error ‘Fatal: el origen no parece ser un repositorio de Git’
- [FIX] Error de ‘infracción de acceso’ de complementos de combinación