Como lo menciona @bentolo, puede eliminar manualmente los archivos de los que se queja, cambiar de rama y luego volver a agregarlos manualmente. Pero personalmente prefiero quedarme "dentro de git".
La mejor forma de hacerlo es convertir el alijo en una rama. Una vez que es una rama, puede trabajar normalmente en git usando las técnicas / herramientas normales relacionadas con las ramas que conoce y ama. En realidad, esta es una técnica general útil para trabajar con escondites incluso cuando no tiene el error enumerado. Funciona bien porque un alijo realmente es un compromiso bajo las sábanas (ver PD).
Convertir un alijo en una rama
Lo siguiente crea una rama basada en HEAD cuando se creó el alijo y luego aplica el alijo (no lo confirma).
git stash branch STASHBRANCH
Trabajar con la "rama de alijo"
Lo que haga a continuación depende de la relación entre el alijo y dónde se encuentra ahora su rama de destino (que llamaré ORIGINALBRANCH).
Opción 1 - Rebasear la rama de alijo normalmente (muchos cambios desde el alijo)
Si ha realizado muchos cambios en su SUCURSAL ORIGINAL, probablemente sea mejor tratar STASHBRANCH como cualquier sucursal local. Confirme sus cambios en STASHBRANCH, vuelva a basarlo en ORIGINALBRANCH, luego cambie a ORIGINALBRANCH y vuelva a colocar / fusionar los cambios de STASHBRANCH sobre él. Si hay conflictos, trátelos normalmente (una de las ventajas de este enfoque es que puede ver y resolver los conflictos).
Opción 2: restablecer la rama original para que coincida con el alijo (cambios limitados desde el alijo)
Si simplemente guardó algunos cambios por etapas, luego se comprometió, y todo lo que quiere hacer es obtener los cambios adicionales que no estaban almacenados cuando los guardó, puede hacer lo siguiente. Volverá a su rama e índice originales sin cambiar su copia de trabajo. El resultado final serán sus cambios adicionales de alijo en su copia de trabajo.
git symbolic-ref HEAD refs/heads/ORIGINALBRANCH
git reset
Antecedentes
Las reservas son confirmaciones como ramas / etiquetas (no parches)
PD: Es tentador pensar en un alijo como un parche (al igual que es tentador pensar en un compromiso como un parche), pero un alijo es en realidad un compromiso contra el HEAD cuando se creó. Cuando aplica / pop, está haciendo algo similar a seleccionarlo en su rama actual. Tenga en cuenta que las ramas y etiquetas son en realidad solo referencias a confirmaciones, por lo que, en muchos sentidos, los alijos, ramas y etiquetas son solo formas diferentes de señalar una confirmación (y su historial).
A veces es necesario incluso cuando no ha realizado cambios en el directorio de trabajo
PPS, es posible que necesite esta técnica después de usar alijo con --patch y / o --include-untracked. Incluso sin cambiar los directorios de trabajo, esas opciones a veces pueden crear un alijo que no se puede volver a aplicar. Debo admitir que no entiendo completamente por qué. Consulte http://git.661346.n2.nabble.com/stash-refuses-to-pop-td7453780.html para una discusión.