Stashing låter dig behålla en kopia av ändringar du har gjort i ett arkiv, utan att behöva skapa en commit.
Det är användbart om du byter sammanhang, speciellt om du går fram och tillbaka mellan olika buggar eller uppgifter i samma projekt.
Grundläggande användning av git stash
Du kan använd git stash för att underlätta ditt arbetsflöde när det gäller parallella arbetslinjer. Föreställ dig att du arbetar med en långvarig uppgift, med ändringar i din lokala arbetskopia. Då dyker det upp något akut som du måste jobba på direkt.
Standardarbetsflödet för att lagra ändringar är:
- Gör lokala ändringar
- Lagra lokala förändringar
- Tillämpa gömda ändringar igen
När du lagrar ändringar med hjälp av git stash [push] kommando, git återställs till HEAD. Du kan sedan fortsätta att arbeta med vad du behöver och förbinda dig till förvaret som om du aldrig gjort de ursprungliga ändringarna.
När du är klar med vad som helst som sänkte dig i första hand, använd git stash pop för att tillämpa dina ändringar och ta bort dem från arkivet. Du kan också tillämpa dina ändringar och behålla dem i arkivet med
git stash gäller. Detta kan vara användbart om du snabbt vill tillämpa ändringarna på flera grenar.Arbeta med mer än ett förråd
Om du är riktigt upptagen kanske du arbetar med flera uppgifter samtidigt, och du kan behöva gömma dem alla. Oroa dig inte, git stash är byggd för detta.
Varje gång du använder git stash push, sparar du ytterligare en uppsättning ändringar. Använda sig av git stash lista för att visa allt du har gömt. Du kommer att se något i stil med detta:
stash@{0}: WIP på main: 2fba62e första commit
stash@{1}: WIP på main: 2fba62e första commit
Dessa meddelanden är inte särskilt användbara, men du kan lämna några ledtrådar för dig själv genom att lägga till ett anpassat meddelande när du lagrar:
git stash push -m "tredje"
När du listar nu ser du ditt anpassade meddelande:
stash@{0}: På main: tredje
stash@{1}: WIP på main: 2fba62e första commit
Visar skillnaderna mellan skillnader
Använd git stash show. Utan ytterligare argument kommer den att visa en skillnadssammanfattning för den senaste förvaringen, som ser ut så här:
$ git stash show
README.md | 3 +++
1 fil ändrad, 3 infogningar (+)
Du kan också skicka ett stash-id för att fråga en specifik post:
git stash visa stash@{0}
Skapa en gren från ett förråd
Du kanske bestämmer dig för att förändringarna i ett förvaringsutrymme är så betydande att de förtjänar att vara i en egen gren. Om så är fallet, skapa en ny filial från förrådet med hjälp av gren kommando:
git stash gren
Återigen kommer detta att fungera på den senaste lagringen som standard, men du kan ange ett förvarings-ID om det behövs. Git skapar din nya gren från samma punkt i förvaret som förrådet. Den tillämpar sedan ändringarna från stash till din arbetskopia.
Rengöring av förrådet
Det finns inget "git unstash"-kommando. Om du vill ta bort en förvaringspost, använd drop:
git stash släppa
Återigen, detta är standard till det senaste men du kan ange ett stash-ID istället. Om du bestämmer dig för att du vill bli av med allt du har gömt, använd det här kommandot:
git stash klart
Använd git stash för Temporary Lightweight Commits
Git-förråd är inte i närheten av lika kraftfulla som fullständiga förråd. Men de erbjuder fortfarande en hel del användbar funktionalitet i sin egen rätt. Använd stashes om du ofta känner att du behöver byta gren mitt i arbetet.
Stashing är bara en liten del av git, vilket är ett program med oerhört mycket att erbjuda.