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 -u
flag
Il comando completo diventa git stash --keep-index -u
Ed ecco un frammento dal git-stash
aiuto
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-index
si 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-index
quando 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
-k
opzione) o scomode da usare.