Mit Git 2.35 (Q1 2022) hat "git stash
"(man) die Option --staged
gelernt, um das, was dem Index hinzugefügt wurde (und nichts anderes), zu verstecken.
Dies wird also jetzt offiziell unterstützt (8 Jahre später).
Siehe Commit a8a6e06 (28. Okt 2021) und Commit 41a28eb (18. Okt 2021) von Sergey Organov (sorganov
).
(Eingefügt von Junio C Hamano -- gitster
-- in Commit 44ac8fd, 29. Nov 2021)
stash
: 'push' und 'save' implementieren die Option '--staged'
Unterzeichnet von: Sergey Organov
Nur die Änderungen speichern, die gestaged sind.
Dieser Modus ermöglicht es, Änderungen, die nichts mit der aktuellen Arbeit in Bearbeitung zu tun haben, leicht für spätere Verwendung zu speichern.
Anders als 'stash push --patch
' unterstützt --staged
die Verwendung eines beliebigen Tools zur Auswahl der Änderungen, die gespeichert werden sollen, einschließlich, aber nicht beschränkt auf 'git add --interactive
'(man).
git stash
enthält jetzt in seiner man page:
'git stash' [push [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-q|--quiet]
git stash
enthält jetzt in seiner man page:
save [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] [-q|--quiet] []
git stash
enthält jetzt in seiner man page:
-S
--staged
Diese Option ist nur gültig für die Befehle push
und save
.
Nur die Änderungen, die derzeit gestaged sind, speichern. Dies ist ähnlich wie ein grundlegender git commit
, jedoch wird der Zustand nicht dem aktuellen Branch, sondern dem Stash committed.
Die Option --patch
hat Vorrang vor dieser.
git stash
enthält jetzt in seiner man page:
Unabhängige Änderungen für zukünftige Verwendung speichern
Wenn Sie mitten in massiven Änderungen stecken und ein ähnliches Problem finden, das Sie nicht vergessen wollen zu beheben, können Sie die Änderungen vornehmen, sie stagen und git stash push --staged
verwenden, um sie für die spätere Verwendung zu verstecken.
Das ist ähnlich wie das Committen der gestageten Änderungen, nur dass das Commit im Stash und nicht im aktuellen Branch landet.
----------------------------------------------------------------
# ... hack hack hack ...
$ git add --patch foo # fügen Sie nicht verwandte Änderungen dem Index hinzu
$ git stash push --staged # speichern Sie diese Änderungen im Stash
# ... hack hack hack, beenden Sie die aktuellen Änderungen ...
$ git commit -m 'Massive' # committen Sie vollständig getestete Änderungen
$ git switch fixup-branch # wechseln Sie zu einem anderen Branch
$ git stash pop # um die gespeicherten Änderungen fertigzustellen
----------------------------------------------------------------