Hvordan navngi og hente en stash etter navn i git?

Jeg var alltid under inntrykk av at du kunne gi en stash et navn ved å gjøre git stash save stashname, som du senere kunne bruke ved å gjøre git stash apply stashname. Men det ser ut til at alt som skjer i dette tilfellet er at stashname vil bli brukt som stashbeskrivelse.

Er det ingen måte å faktisk navngi en stash? Hvis ikke, hva vil du anbefale for å oppnå tilsvarende funksjonalitet? I hovedsak har jeg en liten stash som jeg med jevne mellomrom vil bruke, men vil ikke alltid måtte jakte i git stash list hva det faktiske stash-nummeret er.

Slik gjør du det:

git stash save "my_stash"

Hvor "my_stash" er navnet på gjemmestedet.

Noen flere nyttige ting å vite: Alle stashene lagres i en stabel. Skriv inn:

git stash list

Dette vil liste opp alle gjemmestedene dine.

For å bruke et gjemmested og fjerne det fra gjemmebunken, skriv inn:

git stash pop stash@{n}

For å bruke en stash og beholde den i stash-bunken, skriv inn:

git stash apply stash@{n}

Hvor n er indeksen for den gjemte endringen.

Kommentarer (8)

Du kan gjøre et gjemmested til en filial hvis du føler at det er viktig nok:

git stash branch  []

fra man-siden:

Dette oppretter og sjekker ut en ny gren med navnet som starter fra overføringen der opprinnelig ble opprettet, bruker endringene som er registrert i på det nye arbeidstreet og indeksen, og slipper deretter hvis det fullføres. Når ingen `` er gitt, brukes den siste.

Dette er nyttig hvis grenen du kjørte git stash save på har endret seg nok til at git stash apply mislykkes på grunn av konflikter. Siden stash brukes på toppen av commit som var HEAD på det tidspunktet git stash ble kjørt, gjenoppretter den den opprinnelige stashed-tilstanden uten konflikter.

Du kan senere rebasere denne nye grenen til et annet sted som er en etterkommer av der du var da du stashet.

Kommentarer (4)

Stashes er ikke ment å være permanente ting som du vil ha. Du' vil sannsynligvis være bedre tjent med å bruke koder på begår. Konstruer tingen du vil stash. Lag en forpliktelse ut av det. Opprett en tag for at commit. Rull deretter grenen din tilbake til HEAD^. Nå når du vil bruke den stash på nytt, kan du bruke git cherry-pick -n tagname (-n er --no-commit).

Kommentarer (3)