Wenn ich in einem Zweig bin, z.B. test
und etwas Arbeit haben. Wenn ich eine git stash
und wechseln zu master
Zweig, wenn ich eine git stash clear
mache verliere ich die Arbeit, die ich in test
gespeichert habe? Oder hat jeder Zweig einen eigenen Stash-Stack?Hat jeder Zweig ein separates Versteck?
5
A
Antwort
10
Nr Versteckt das sind infact die reflog einer Referenz (wie eine Art 'versteckter Zweig', wenn man so will): refs/stash
So
git reflog refs/stash
e41a1b8 refs/[email protected]{0}: WIP on master: 42092ec PoC
entspricht in etwa
git stash list
[email protected]{0}: WIP on master: 42092ec PoC
So gibt es nur eine "Zweigstelle" alle stashes enthält.
Die Maschinen könnten deutlicher in dieser Antwort werden: Is it possible to push a git stash to a remote repository?
Sie ‚ableiten‘ können, welcher Zweig der Stash paßt auf, indem Sie beispiel
git branch -a --contains [email protected]{0}^
(fragen: welche Zweige der Mutter Revision für dieses Versteck enthalten)
Wie Sie in der Mitte mit den Anführungszeichen um „Zweig“ vorgeschlagen, 'refs/ist stash' nicht wirklich ein Zweig an sich. (Es ist * eine Referenz, genauso wie Zweige und Tags Verweise sind, aber auch Notizen.) 'Git stash branch ...' lässt Sie jeden gegebenen Stash * in * eine Verzweigung ändern (durch Auschecken der Eltern) und dann den neuen Zweig erstellen und den Stash anwenden). Also, wenn Sie einen Vorrat haben und entscheiden, dass es ein Zweig werden soll, ist das leicht zu machen. – torek
@torek danke für diesen Zusatz. Würdest du glauben, dass ich 'git stash branch' irgendwie immer übersehen habe :) Oder vielleicht ist meine Verwendung von git älter als der Unterbefehl (?). Wie auch immer, froh, dass ich das gelernt habe. – sehe