Stashing giver dig mulighed for at beholde en kopi af ændringer, du har foretaget i et lager, uden at skulle oprette en commit.
Det er nyttigt, hvis du skifter kontekst, især hvis du går frem og tilbage mellem forskellige fejl eller opgaver på det samme projekt.
Grundlæggende betjening af git stash
Du kan brug git stash for at lette din arbejdsgang når man har at gøre med parallelle arbejdslinjer. Forestil dig, at du arbejder på en langvarig opgave med ændringer i din lokale arbejdskopi. Så dukker der noget akut op, som du skal arbejde på med det samme.
Standardarbejdsgangen for at gemme ændringer er:
- Foretag lokale ændringer
- Gem lokale ændringer
- Anvend gemte ændringer igen
Når du gemmer ændringer ved hjælp af git stash [skub] kommando, git nulstilles til HEAD. Du kan derefter fortsætte med at arbejde på, hvad du har brug for, og forpligte dig til depotet, som om du aldrig lavede de oprindelige ændringer.
Når du er færdig med, hvad der endte med at spore dig i første omgang, så brug git stash pop
for at anvende dine ændringer og fjerne dem fra gemmerne. Du kan også anvende dine ændringer og opbevare dem i gemmerne med git stash gælder. Dette kan være nyttigt, hvis du hurtigt vil anvende ændringerne på flere grene.Arbejder med mere end ét opbevaringssted
Hvis du har virkelig travlt, kan du finde på at arbejde med flere opgaver på én gang, og du skal muligvis gemme dem alle sammen. Bare rolig, git stash er bygget til dette.
Hver gang du bruger git stash push, gemmer du endnu et sæt ændringer. Brug git stash liste for at vise alt, hvad du har gemt. Du vil se noget som dette:
stash@{0}: WIP på main: 2fba62e first commit
stash@{1}: WIP på main: 2fba62e første commit
Disse beskeder er ikke særlig nyttige, men du kan efterlade nogle ledetråde til dig selv ved at tilføje en brugerdefineret besked, når du gemmer:
git stash push -m "tredje"
Når du angiver nu, vil du se din tilpassede besked:
stash@{0}: På hoved: tredje
stash@{1}: WIP på main: 2fba62e første commit
Viser forskellene mellem diff
For at finde ud af, hvad der er ændret i et gemmer, brug git stash show. Uden yderligere argumenter vil den vise en diff-oversigt for den seneste stash, der ser sådan ud:
$ git stash show
README.md | 3 +++
1 fil ændret, 3 indsættelser (+)
Du kan også sende et stash-id for at forespørge på en bestemt post:
git stash vis stash@{0}
Oprettelse af en filial fra et gemmer
Du kan beslutte, at ændringerne i et gemmested er så betydelige, at de fortjener at være i deres egen gren. Hvis så, oprette en ny filial fra gemmerne ved hjælp af afdeling kommando:
git stash gren
Igen, dette vil fungere på den seneste stash som standard, men du kan angive et stash-id, hvis det er nødvendigt. Git opretter din nye gren fra samme punkt i depotet som gemmerne. Det anvender derefter ændringerne fra gemmerne til din arbejdskopi.
Rengøring af opbevaringen
Der er ingen "git unstash" kommando. Hvis du vil fjerne en gemmepost, skal du bruge drop:
git stash dråbe
Igen, dette er standard til den nyeste, men du kan angive et stash-id i stedet for. Hvis du beslutter dig for at slippe af med alt, hvad du har gemt, skal du bruge denne kommando:
git stash klart
Brug git stash til Temporary Lightweight Commits
Git stashes er ikke nær så kraftfulde som fulde depoter. Men de tilbyder stadig en masse nyttig funktionalitet i deres egen ret. Brug gemmer, hvis du ofte har brug for at skifte gren midt i arbejdet.
Stashing er kun en lille del af git, som er et program med utrolig meget at byde på.