In meinem aktuellen Zweig habe ich mehrere Verstecke:
stash@{0}
stash@{1}
stash@{2}
-
Wenn ich mich bewerbe stash@{0}
:
$ git stash apply stash{0}
-
Ändern Sie diesen Vorrat
-
Ich möchte die Änderungen im aktuellen Stash speichern stash@{0}
Ich möchte keinen vierten Stash erstellen, ich möchte nur den ersten Stash aktualisieren.
Kann jemand sagen, wie man das macht? Ich schaue mir die Manpage an … vielleicht übersehe ich etwas.
Sie können Ihren funktionierenden Baum verstauen und dann den alten löschen, den Sie nicht benötigen.
git stash apply
# Make changes
git stash
git stash drop stash@{1}
Alternativ können Sie statt anwenden auch poppen, was gleichzeitig den Vorrat fallen lässt:
git stash pop
# make changes
git stash
Eine weitere Alternative, wenn Sie die gewünschten Änderungen bereits vorgenommen haben, bevor Sie feststellten, dass Sie die Änderungen oben im Stash zusammenführen möchten:
# make changes
git add <all files>
git stash pop # or apply
git rm --cached <files that you want to merge>
git stash --keep-index
Das Problem ist klar, aber was ist der Anwendungsfall? Warum benutzt du dafür keine Branches?
– Andrejs Cainikovs
2. Oktober 2013 um 17:41 Uhr
Welchen Stash-Index möchten Sie ändern?
– Eimer
2. Oktober 2013 um 17:41 Uhr
Stashes sind keine Commits. Wenn Sie diese Art von Flexibilität benötigen, ist es möglicherweise besser, ein Patch-Warteschlangensystem zu verwenden. (Ich bin mir nicht sicher, was der bevorzugte für Git ist, Quilt oder StGIT.) Oder vielleicht nur private Branches, die Sie rebasen.
– Millielch
2. Oktober 2013 um 17:41 Uhr
Sie fragen, wie Sie die ändern können
topmost stash
nur oder ein Versteck bei aparticular index
und speichern Sie es wieder in diesem Index? Letzteres wäre ziemlich interessant– Aschisch Gaur
2. Oktober 2013 um 17:47 Uhr
@millimoose: Stashes haben Hashes, also sind sie in gewisser Weise wie Commit, wenn man bedenkt, wie sie im Baum erstellt wurden, sie werden nur geringfügig anders behandelt als normale Commits.
– Lüge Ryan
2. Oktober 2013 um 17:54 Uhr