Aquí está mi estrategia para resolver el problema.
Planteamiento del problema
Necesitamos hacer cambios en más de 10 archivos. Lo intentamos PULL (git pull origin master)
, pero Git gritó:
error: sus cambios locales en los siguientes archivos se sobrescribirán mediante fusión: por favor, confirme los cambios o guárdelos antes de poder fusionarlos.
Intentamos ejecutar commit
y luego pull
, pero tampoco funcionaron.
Solución
En realidad, estábamos en la etapa sucia , porque los archivos estaban en el "Área de ensayo", también conocido como "Área de índice", y algunos estaban en el "Área de cabecera", también conocido como "directorio Git local". Y queríamos sacar los cambios del servidor.
Consulte este enlace para obtener información sobre las diferentes etapas de Git de manera clara: Etapas de GIT
Seguimos los siguientes pasos
git stash
(esto limpió nuestro directorio de trabajo. Git almacena sus cambios en la pila).
git pull origin master
(Extraiga los cambios del servidor)
git stash apply
(Aplica todos los cambios de la pila)
git commit -m 'message'
(Cometió los cambios)
git push origin master
(Empujó los cambios al servidor)
git stash drop
(Suelta la pila)
Comprendamos cuándo y por qué necesita esconderse
Si está en estado sucio , significa que está haciendo cambios en sus archivos y luego, por cualquier motivo, se ve obligado a retirar o cambiar a otra sucursal para realizar un trabajo muy urgente, por lo que en este momento no puede extraer o cambia hasta que confirmes tu cambio. El stash
comando está aquí como una mano amiga.
Del libro ProGIT , 2da Edición:
A menudo, cuando ha estado trabajando en parte de su proyecto, las cosas están en un estado desordenado y desea cambiar las ramas por un tiempo para trabajar en otra cosa. El problema es que no desea realizar una tarea de trabajo a medias para poder volver a este punto más adelante. La respuesta a este problema es el comando git stash. Stashing toma el estado sucio de su directorio de trabajo, es decir, sus archivos rastreados modificados y los cambios por etapas, y lo guarda en una pila de cambios sin terminar que puede volver a aplicar en cualquier momento.