logo

Git | Jobbar med Stash

Förkunskaper: Git

Git tillåter flera användare att arbeta med samma projekt samtidigt. Anta att en utvecklare arbetar på en funktion i en gren och han behöver hämta ändringar från någon annan utvecklares gren eller om han måste arbeta akut med någon annan funktion, men funktionen han för närvarande arbetar med är ofullständig. I det här fallet kan du inte överföra delkoden för den funktion som för närvarande fungerar. För att lägga till den här nya funktionen måste du ta bort dina nuvarande ändringar och lagra dem någon annanstans. För denna typ av situation erbjuder Git ett mycket användbart kommando känt som ' git stash '. git stash kommandot sparar den tidigare skrivna koden och återgår sedan till den sista commit för en nystart. Nu kan du lägga till den nya funktionen utan att störa den gamla eftersom den sparas lokalt. Efter att ha anslutit dig till den nya funktionen kan du fortsätta med att arbeta med den gamla funktionen som var ofullständig och oengagerad.



Git stash vs Git Commit

Det finns två alternativa sätt att spara ändringar i git-förvaret: stash och commit.

Git stash: Kommandot Git stash kan användas för att åstadkomma detta om en utvecklare arbetar på ett projekt och vill bevara ändringarna utan att begå dem. Detta kommer att tillåta honom att byta filial och arbeta med andra projekt utan att påverka de befintliga ändringarna. Du kan återställa ändringar när det behövs, och det lagrar det aktuella tillståndet och återställer utvecklarna till ett tidigare tillstånd.

Git commit: Utvecklare vill permanent lagra sina ändringar av källkoden i förvarshistoriken. De git commit kommandot kan användas för att åstadkomma detta. Git skapar en ny commit som dokumenterar dina ändringar och lägger till dem i förvarshistoriken.



För att sammanfatta. Git commits sparar permanent ändringar i arkivhistoriken, medan Git stash används för att ta en säkerhetskopia av filerna vi arbetar med men som ännu inte är redo att commiteras.

Git Stash vs Git Reset

Båda kommandona kan kombineras för att hantera ändringar i ett Git-förråd och har olika användningsfall.

Git reset och Git stash Med dessa två kommandon kan vi återställa alla tidigare raderade och säkerhetskopierade filer till den aktuella arbetskatalogen. Dessa två primära distinktioner är följande:



Git Stash

Git Reset

Git stash används för att spara filerna som görs ändringar och som inte är redo att commit.

Git reset kan ångra ändringarna helt och ändra grenpekaren till den nya commit

Utvecklare kan byta filial och arbeta med andra uppgifter utan att påverka de aktuella ändringarna.

Ändringar som redan har gjorts kasseras av Git-återställning.

Git Stash vs Git Stage

Staging används för att göra ändringarna redo för efterföljande commit, medan Git stash används för att ta en säkerhetskopia av filer som har modifierats men som ännu inte är redo att commiteras. Båda kommandona kan kombineras för att hantera ändringar i ett Git-förråd och har olika användningsfall.

Git Stash Git Stage
Git stash används för att säkerhetskopiera filer Filer läggs till i git-indexet med hjälp av git-stadiet.

Git stash används om du behöver byta till en annan uppgift eller gren medan du arbetar med en funktion eller buggfix.

Modifieringar av Git-steg ska inkluderas i den efterföljande commit när du använder git add-kommandot.

Vilken mapp lagrar Git Stash-historik?

När vi använder git stash kommer data att lagras i form av stashes i vårt lokala arkiv. Som standard kommer data att lagras i git/refs/stash-filen. I den här filen lagras alla referenser och den faktiska datan lagras i katalogen .git/objects, precis som andra Git-objekt .

latex lista

Kommandot nedan används för att lista alla stashes som har skapats.

git stash list>

Hur sparar du ändringar i Git?

För att spara de oengagerade ändringarna för senare användning kan du använda 'git stash' kommando. Detta kommando sparar bort dina lokala ändringar och återställer arbetskatalogen så att den matchar HEAD commit så att den ger dig en ren arbetskatalog.

Här är några viktiga alternativ som används mest:

    Git stash Git stash spara Git stash lista Git stash tillämpa Git stash ändringar Git stash pop Git stash drop Git stash rensa Git stash branch

Stashing Your Work (Git Stash)

git stash>
git status

Som standard körs git stash kommer att lagra ändringarna som har lagts till i ditt index (stegade ändringar) och ändringar som gjorts i filer som för närvarande spåras av Git (ostadgade ändringar). För att lagra dina ospårade filer, använd git stash -u .

Hantera flera stashes (Git Stash List)

Du kan skapa flera förvaringsutrymmen och se dem med hjälp av 'git stash lista' kommando. Varje lagerpost listas med sitt namn (t.ex. stash@{1} ), namnet på filialen som var aktuell när posten gjordes, och en kort beskrivning av den commit som posten baserades på.

git stash list>
git stash lista

För att ge mer sammanhang till stash skapar vi stash med följande kommando:

git stash save 'message'>

Vad är Git Stash Apply och POP(Git Stash Apply & POP)

Du kan återanvända de tidigare gömda ändringarna med 'git stash pop' eller 'git stash tillämpas' kommandon. Den enda skillnaden mellan båda kommandona är att 'git stash pop' tar bort ändringarna från arkivet och tillämpar ändringarna i arbetskopian medan 'git stash tillämpas' tillämpar bara ändringarna i arbetskopian igen utan att ta bort ändringarna från arkivet. Med enkla ord, pop tar bort tillståndet från förvaringslistan medan tillämpa tar inte bort tillståndet från stashlistan. Med hjälp av det efterföljande kommandot kan vi återföra de lagrade ändringarna. Den senaste lagringen kommer att tillämpas på vår arbetskatalog, och den kommer också att tas från listan över förvaringsutrymmen.

git stash pop>
git stash pop
git stash apply>
git stash gäller

Som standard 'git stash pop' eller 'git stash tillämpas' kommer att återanvända den senast skapade stash: stash@{0} För att välja vilken stash som ska tillämpas kan du skicka identifieraren som det sista argumentet ( För tex. :- git stash pop stash@{2}).

Git Stash Show

git stash show kommandot används för att visa sammanfattningen av operationer som utförts på stash.

git stash show>
git stash show

Skapa en gren från ditt förråd (Git Stash Branch)

Om du vill skapa och checka ut en ny gren med start från den commit där lagringen ursprungligen skapades och tillämpa ändringarna som sparats i förvaringen, använd 'git stash branch branch_name stash_name' . Den tappar stash som ges som argument och om ingen stash ges, tappar den den senaste.

git stash branch newbranch stash@{0}>
git stash gren

Rensa upp dina gömmor (Git Stash Clear)

För att radera en viss förvaring ( Till exempel: – stash@{1}), använd 'git stash drop stash@{1}' . Som standard försvinner detta kommando stash@{0} om inget argument tillhandahålls ( git stash drop ). För att radera alla förvaringsutrymmen på en gång, använd 'git stash clear' kommando.

Git Stash Clear

Kommandot git stash tillåter oss att behålla oengagerade ändringar så att vi kan använda dem efter behov i framtiden. När vi använder kommandot git stash säkerhetskopieras filerna automatiskt. Detta gör att vi kan byta gren, utföra våra sysslor och sedan enkelt få tillbaka filerna när vi är redo att arbeta med dem igen.

Git stash

Lagra ospårade eller ignorerade filer

Vi kan använda kommandot git stash för att lagra filerna som är ospårade eller ignorerade filer. Genom att följa stegen nedan kan vi lagra våra filer:

Steg 1: Spara ändringarna för det med kommandot nedan.

git stash save --include-untracked>

–inkludera-untracked av detta kommer att gömma alla ospårade filer också.

Steg 2: Verifiera stash:

Använd kommandot nedan för att bekräfta att stash skapades:

git stash list>

Steg 3: Genom att använda följande kommando kan vi ta tillbaka och applicera stash.

git stash apply stash@{0}>

Steg 4: När vi är klara med att ta tillbaka förvaringen om det är oönskat kan vi ta bort förvaringen genom att använda följande kommando.

git stash drop stash@{0}>

Git Stash bästa praxis

Här är några bästa metoder för att använda Git stash kommando.

  1. Överanvänd inte git stash: Git stash måste användas måttligt när det är mycket viktigt att arbeta med en annan uppgift, då bara vi bör använda git stash det kommer att påverka ändringarna som måste göras i commit.
  2. Undvik onödiga meddelanden: Genom att använda git stash kan du lägga till ett meddelande för att beskriva ändringarna du lagrar. Gör budskapet meningsfullt. När du behöver komma ihåg vad som finns i förrådet senare kommer detta att vara praktiskt. Använd uttalanden som är informativa och suggestiva och som korrekt återspeglar de ändringar som döljs.
  3. Anställ filialer: Stashing är ett användbart verktyg när du arbetar med Git-grenar. Innan du lagrar ändringar, gör en ny gren så att du kan byta till olika uppgifter eller grenar utan att påverka dina nuvarande ändringar. Gå tillbaka till grenen och applicera förvaringen när du är redo att arbeta med ändringarna en gång till.
  4. Ändringar bör göras så snabbt som möjligt: lagring bör endast användas som en tillfällig lösning. När du har gjort klart en uppsättning ändringar bör du överlåta dem till arkivet för att bevara en registrering av ändringarna.