Actualización 2:
no estoy seguro de por qué la gente se queja de esta respuesta, parece que funciona perfectamente conmigo, para los archivos no extraídos, puede agregar la -u
bandera
El comando completo se convierte en git stash --keep-index -u
Y aquí hay un fragmento de la git-stash
ayuda.
Si se usa la opción --keep-index, todos los cambios ya agregados al índice se dejan intactos.
Si se usa la opción --include-untracked, todos los archivos sin seguimiento también se guardan y luego se limpian con git clean, dejando el directorio de trabajo en un estado muy limpio. Si se usa la opción --all, los archivos ignorados se guardan y se limpian además de los archivos sin seguimiento.
Y este es un gif de cómo se ve:
Actualizar:
Aunque esta es la respuesta seleccionada, muchos han señalado que la [respuesta a continuación] (https://stackoverflow.com/a/34681302/292408) es la correcta, recomiendo revisarla.
Probé mi respuesta nuevamente hoy (31/1/2020) contra la versión de git 2.24.0
, y todavía creo que es correcta, agregué una pequeña nota arriba sobre los archivos sin seguimiento. Si cree que no funciona, mencione también su versión de git.
Respuesta anterior :
si --keep-index
se usa la opción, todos los cambios ya agregados al índice se dejan intactos:
git stash --keep-index
De la documentación degit-stash
:
Probando confirmaciones parciales
Puede utilizarlo git stash save --keep-index
cuando desee realizar dos o más confirmaciones a partir de los cambios en el árbol de trabajo y desee probar cada cambio antes de realizar la confirmación:
# ... hack hack hack ...
$ git add --patch foo # add just first part to the index
$ git stash save --keep-index # save all other changes to the stash
$ edit/build/test first part
$ git commit -m 'First part' # commit fully tested change
$ git stash pop # prepare to work on all other changes
# ... repeat above five steps until one commit remains ...
$ edit/build/test remaining parts
$ git commit foo -m 'Remaining parts'
Pero, si solo desea verificar visualmente los cambios por etapas, puede probar difftool
:
git difftool --cached
-k
opción) o incómodas de usar.