¿Es posible soltar un solo file de git stash?

¿Es posible, sin pop todo escondido y save otro sin este file en particular?

Respuesta corta: no, así no es como funciona la stack. Sin embargo, puede hacer lo siguiente para get el resultado que está buscando.

Suponiendo que ha escondido algunos otros cambios, entonces hizo algunas modificaciones más a su índice ( cambios originales ) y decide que quiere mantener estos cambios mientras modifica el alijo:

#verify the state you are in git stash list git status git stash #push work in progress on the stash git stash list #check which stash you need git stash show stash@{1} #check the changes in the stash git stash pop stash@{1} #you're now ready to change your 'other' changeset # hack hack git stash #modified 'other' change set pushed on the stash git stash pop stash@{1} #your 'original changes' 

Recomiendo este flujo de trabajo sobre tratar de modificar el alijo directamente. Si te pierdes en numbers escondidos también puedes usar git stash save 'some other changes'

En algún momento (probablemente más cerca de lo que piensas) es más fácil hacer un seguimiento de las twigs reales.

Podría intentar, después de hacer estallar su stack, marcar el file que no quiere esconder como "sin cambios":

 git update-index --assume-unchanged -- /path/to/file 

, y luego tratar de esconder, verificar si dicho file está incluido o no.

git update-index man page :

 --assume-unchanged --no-assume-unchanged 

Cuando se especifican estos indicadores, los nombres de los objects registrados para las routes no se actualizan.
En cambio, estas opciones establecen y desarman el bit "asumir sin cambios" para las routes.

Cuando el bit "asumir sin cambios" está activado, git deja de verificar los files del tree de trabajo para posibles modificaciones, por lo que debe desarmar manualmente el bit para indicarle a git cuando cambie el file de tree de trabajo.
Esto a veces es útil cuando se trabaja con un gran proyecto en un sistema de files que tiene una llamada al sistema lstat(2) muy lenta (por ejemplo, cifs ).

Esta opción también se puede utilizar como un mecanismo de nivel de file .gitignore para ignorar los cambios no confirmados en los files rastreados (similar a lo que hace .gitignore para los files no .gitignore )