Aggiornamento 2:
non sono sicuro del motivo per cui le persone si lamentano di questa risposta, sembra che funzioni perfettamente con me, per i file non trattati puoi aggiungere il -uflag
Il comando completo diventa git stash --keep-index -u
Ed ecco un frammento dal git-stashaiuto
Se viene utilizzata l'opzione --keep-index, tutte le modifiche già aggiunte all'indice vengono lasciate intatte.
Se viene utilizzata l'opzione --include-untracked, anche tutti i file non tracciati vengono nascosti e quindi ripuliti con git clean, lasciando la directory di lavoro in uno stato molto pulito. Se invece viene utilizzata l'opzione --all, i file ignorati vengono nascosti e puliti in aggiunta ai file non tracciati.
E questa è una gif di come appare:

Aggiornare:
Anche se questa è la risposta selezionata, molti hanno sottolineato che la [risposta sotto] (https://stackoverflow.com/a/34681302/292408) è quella corretta, ti consiglio di verificarla.
Ho testato di nuovo la mia risposta oggi (31/1/2020) con la versione git 2.24.0, e continuo a credere che sia corretta, ho aggiunto una piccola nota sopra sui file non tracciati. Se pensi che non funzioni, menziona anche la tua versione di git.
Vecchia risposta :
se --keep-indexsi utilizza l' opzione, tutte le modifiche già aggiunte all'indice vengono lasciate intatte:
git stash --keep-index
Dalla documentazione digit-stash :
Testare i commit parziali
È possibile utilizzare git stash save --keep-indexquando si desidera eseguire due o più commit dalle modifiche nell'albero di lavoro e si desidera testare ogni modifica prima di eseguire il commit:
# ... 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'
Ma, se vuoi solo controllare visivamente solo le modifiche graduali, puoi provare difftool:
git difftool --cached
-kopzione) o scomode da usare.