Mise à jour 2:
Je ne sais pas pourquoi les gens se plaignent de cette réponse, cela semble fonctionner parfaitement avec moi, pour les fichiers non extraits, vous pouvez ajouter le -u
drapeau
La commande complète devient git stash --keep-index -u
Et voici un extrait de l' git-stash
aide
Si l'option --keep-index est utilisée, toutes les modifications déjà ajoutées à l'index sont laissées intactes.
Si l'option --include-untracked est utilisée, tous les fichiers non suivis sont également stockés puis nettoyés avec git clean, laissant le répertoire de travail dans un état très propre. Si l'option --all est utilisée à la place, les fichiers ignorés sont stockés et nettoyés en plus des fichiers non suivis.
Et ceci est un gif de son apparence:
Mettre à jour:
Même si c'est la réponse choisie, beaucoup ont souligné que la [réponse ci-dessous] (https://stackoverflow.com/a/34681302/292408) est la bonne, je recommande de la vérifier.
J'ai testé à nouveau ma réponse aujourd'hui (31/1/2020) par rapport à la version git 2.24.0
, et je pense toujours que c'est correct, j'ai ajouté une petite note ci-dessus à propos des fichiers non suivis. Si vous pensez que cela ne fonctionne pas, veuillez également mentionner votre version de git.
Ancienne réponse :
si l' --keep-index
option est utilisée, toutes les modifications déjà ajoutées à l'index sont laissées intactes:
git stash --keep-index
De la documentation degit-stash
:
Test des commits partiels
Vous pouvez utiliser git stash save --keep-index
lorsque vous souhaitez effectuer deux ou plusieurs validations à partir des modifications de l'arborescence de travail et que vous souhaitez tester chaque modification avant de valider:
# ... 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'
Mais, si vous souhaitez uniquement vérifier visuellement les modifications par étapes, vous pouvez essayer difftool
:
git difftool --cached
-k
option), soit fastidieuses à utiliser.