Tengo algunos archivos que no fueron rastreados en git. Hice algunos cambios y quería confirmarlos, pero me di cuenta de que había olvidado registrar primero los archivos no modificados. Así que escondí los archivos, luego agregué las versiones sin modificar.
Luego, cuando aplico el alijo al repositorio, obtengo conflictos debido a que los archivos ya se han agregado.
¿Cómo puedo aplicar el alijo y forzar que las versiones en el alijo se usen con preferencia a los originales en el repositorio?
Gracias
git rm
antes de hacerlogit stash apply
.git
lo tratará como una pequeña modificación.Respuestas:
Usar en
git checkout
lugar degit stash apply
:Esto restaurará todos los archivos en el directorio actual a su versión oculta.
Si hay cambios en otros archivos en el directorio de trabajo que deben mantenerse, aquí hay una alternativa menos dura:
Si hay cambios en el índice, o la fusión tocará archivos con cambios locales, git se negará a fusionar. Los archivos individuales se pueden extraer del alijo utilizando
o interactivamente con
fuente
git checkout stash -- .
Este comando literalmente no hizo nada cuando lo ejecuté.git checkout stash -- .
en la carpeta principal más alta que contenía mis cambios, de lo contrario, solo aplicó cambios a la carpeta desde donde ejecuté el comando..
especifica el directorio actual (puede reemplazarlo con una ruta diferente en lugar de cambiar el directorio). Actualicé mi respuesta para aclarar eso.git stash show -p | git apply
y luego
git stash drop
si quieres soltar los elementos escondidos.fuente
Para forzar
git stash pop
ejecutar este comandofuente
TL; DR:
Versión larga:
Obtiene este error debido a los cambios no confirmados que desea sobrescribir. Deshacer estos cambios con
git checkout HEAD
. Puede deshacer los cambios en un archivo específico congit checkout HEAD path/to/file
. Después de eliminar la causa del conflicto, puede aplicar como de costumbre.fuente