Ich nehme an, es ermöglicht das Verschieben von Änderungen von einem Zweig zum nächsten, aber dafür ist Kirschernte gedacht, und wenn Sie Ihre Änderungen nicht festschreiben, sollten Sie sie vielleicht nicht verschieben?
Ich habe gelegentlich den falschen Vorrat auf den falschen Zweig angewendet, was mich über diese Frage nachdenken ließ.
git stash-here
jemand?Antworten:
Wie bereits erwähnt, möchten Sie, wenn Sie einen "Zweig pro Zweig" möchten, wirklich einen neuen Zweig, der sich vom vorhandenen Zweig löst.
Neben der bereits erwähnten Tatsache, dass Sie mit dem Stash in einen Zweig ziehen können, an dem Sie gerade arbeiten, können Sie auch den Zweig wechseln, bevor Sie alles festgeschrieben haben. Dies ist nicht zum Kirschpflücken im üblichen Sinne nützlich, sondern zum Kirschenpflücken Ihrer Arbeitskopie .
Wenn ich beispielsweise an einem Feature-Zweig arbeite, stelle ich häufig kleinere Fehler oder kosmetische Verunreinigungen im Code fest, die für diesen Zweig nicht relevant sind. Nun, ich repariere diese einfach sofort. Wenn die Zeit zum Festschreiben gekommen ist, lege ich selektiv die relevanten Änderungen fest, nicht jedoch die Korrekturen und Kosmetika. Stattdessen verwahre ich diese, wodurch ich zu meinem Zweig "Minor-Fixes-on-Stable" wechseln kann, wo ich den Stash anwenden und jeden Minor-Fix separat festschreiben kann. ( In Abhängigkeit von den Änderungen in Frage, ich werde auch noch einmal einige von ihnen beiseite schaffen, zu einem anderen Feature Zweig zu wechseln, wo ich mich bewerben diejenigen .)
Auf diese Weise kann ich während der Arbeit tief in den Programmiermodus wechseln und mich nicht um das ordnungsgemäße Bibliothekswesen meines Codes kümmern. Wenn ich dann eine mentale Pause mache, kann ich zurückgehen und meine Änderungen sorgfältig in die richtigen Regale sortieren.
Wenn der Stash nicht global wäre, wäre diese Art von Workflow weitaus schwieriger durchzuführen.
quelle
As mentioned, if you want a “per-branch stash,” you really want a new branch forking off from the existing branch.
. Insbesondere wechsle ich oft zwischen zwei Versionen desselben Programms, und das Ausführen eines vollständigen Programmsmake
dauert 10 Minuten. Es wäre sehr schön, die erstellten Binärdateien pro Zweig verstauen zu können. Und ich möchte auf keinen Fall die Binärdateien im Protokoll oder in einem Zweig.Ab Git 1.6 können Sie jetzt mithilfe von Verstecken Stashes auf Zweige anwenden
Git erstellt den neuen Zweig für Sie und probiert ihn aus! Weitere Informationen finden Sie unter
das Git-Buch
info git-stash
und suche nach Option =branch
.Ich vermute, Sie können Stashes mit verschieben
und um eine Liste Ihrer Verstecke zu sehen, verwenden Sie
Referenz
quelle
gitk --all
" zeigte nicht mehr meinen ersten Vorrat; Ich dachte, es könnte verstopft sein. Nachdem meine Arbeit in der zweiten Filiale erledigt war, habe ich diesen Vorrat geknallt. Danach zeigte mein aktualisiertes "gitk --all
" wieder den ursprünglichen Vorrat.Wenn Sie einen "Stash" möchten, der von einem Zweig ausgeht, gehen Sie wie folgt vor, um Ihre Änderungen in einem neuen Zweig Ihres aktuellen Zweigs zu speichern.
das Versteck rückgängig machen
git stash ist besonders nützlich, weil Sie Änderungen in einen schmutzigen Baum ziehen können, dh wenn Sie ausstehende Änderungen haben und eine ausführen möchten
und Sie können nicht, Sie können Ihre Änderungen verstauen, ziehen und dann das Versteck anwenden
hoffe das hat geholfen!
quelle
make
in diesem Zweig ergeben haben? (Ein Stash pro Zweig würde Zeit sparen, wenn Sie das nächste Mal einen inkrementellen Build in diesem Zweig durchführen, aber Sie möchten die Binärdateien sicherlich nicht zum Index hinzufügen.)git-stash ist für mich am nützlichsten, um noch nicht eingecheckte Änderungen in einen anderen Zweig als den aktuell ausgecheckten zu verschieben.
Zum Beispiel: Ich stelle häufig fest, dass ich einfache Änderungen an einem Bugfixes-Zweig vornehme. nur um festzustellen, dass eine Änderung, an der ich arbeite, komplexer ist, als ich zuerst vermutet habe. Git-Stash ist der einfachste Weg, um diese Änderungen in einen anderen Zweig zu verschieben.
quelle