Update 2:
Ich bin mir nicht sicher, warum sich die Leute über diese Antwort beschweren. Es scheint perfekt mit mir zu funktionieren. Für die nicht extrahierten Dateien können Sie das -u
Flag hinzufügen
Der vollständige Befehl wird git stash --keep-index -u
Und hier ist ein Ausschnitt aus der git-stash
Hilfe
Wenn die Option --keep-index verwendet wird, bleiben alle Änderungen, die bereits zum Index hinzugefügt wurden, erhalten.
Wenn die Option --include-untracked verwendet wird, werden alle nicht verfolgten Dateien ebenfalls gespeichert und dann mit git clean bereinigt, sodass das Arbeitsverzeichnis in einem sehr sauberen Zustand bleibt. Wenn stattdessen die Option --all verwendet wird, werden die ignorierten Dateien zusätzlich zu den nicht verfolgten Dateien gespeichert und bereinigt.
Und das ist ein GIF, wie es aussieht:
Aktualisieren:
Obwohl dies die ausgewählte Antwort ist, haben viele darauf hingewiesen, dass die [Antwort unten] (https://stackoverflow.com/a/34681302/292408) die richtige ist. Ich empfehle, sie zu überprüfen.
Ich habe meine Antwort heute (31.1.2020) erneut gegen die Git-Version getestet 2.24.0
und glaube immer noch, dass sie korrekt ist. Ich habe oben einen kleinen Hinweis zu den nicht verfolgten Dateien hinzugefügt. Wenn Sie denken, dass es nicht funktioniert, erwähnen Sie bitte auch Ihre Git-Version.
Alte Antwort :
Wenn die --keep-index
Option verwendet wird, bleiben alle Änderungen, die bereits zum Index hinzugefügt wurden, erhalten:
git stash --keep-index
Aus der Dokumentation vongit-stash
:
Teil-Commits testen
Sie können verwenden, git stash save --keep-index
wenn Sie zwei oder mehr Festschreibungen aus den Änderungen im Arbeitsbaum vornehmen und jede Änderung vor dem Festschreiben testen möchten:
# ... 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'
Wenn Sie jedoch nur die bereitgestellten Änderungen visuell überprüfen möchten, können Sie Folgendes versuchen difftool
:
git difftool --cached
-k
Option) oder umständlich zu verwenden.