logo

Git | Jobber med Stash

Forutsetninger: Git

Git lar flere brukere jobbe med samme prosjekt samtidig. Anta at en utvikler jobber med en funksjon i en gren og han trenger å hente endringer fra en annen utviklers gren, eller hvis han må jobbe raskt med en annen funksjon, men funksjonen han jobber med er ufullstendig. I dette tilfellet kan du ikke forplikte den delvise koden til funksjonen som fungerer. For å legge til denne nye funksjonen, må du fjerne gjeldende endringer og lagre dem et annet sted. For denne typen situasjoner tilbyr Git en veldig nyttig kommando kjent som ' git stash '. git stash kommandoen lagrer den tidligere skrevne koden og går deretter tilbake til siste commit for en ny start. Nå kan du legge til den nye funksjonen uten å forstyrre den gamle siden den er lagret lokalt. Etter at du har forpliktet deg til den nye funksjonen, kan du fortsette å jobbe med den gamle funksjonen som var ufullstendig og uforpliktet.



Git stash vs Git Commit

Det er to alternative måter å lagre endringer i git-depotet på: stash og commit.

Git stash: Git stash-kommandoen kan brukes til å oppnå dette hvis en utvikler jobber med et prosjekt og ønsker å bevare endringene uten å forplikte dem. Dette vil tillate ham å bytte grener og jobbe med andre prosjekter uten å påvirke de eksisterende modifikasjonene. Du kan rulle tilbake endringer når det er nødvendig, og det lagrer gjeldende tilstand og ruller tilbake utviklere til en tidligere tilstand.

Git commit: Utviklere ønsker å permanent lagre endringene i kildekoden i depothistorikken. De git forplikte kommandoen kan brukes til å oppnå dette. Git oppretter en ny commit som dokumenterer endringene dine og legger dem til i depothistorikken.



Å oppsummere. Git forplikter permanent lagre endringer i depothistorikken, mens Git stash brukes til å ta en sikkerhetskopi av filene vi jobber med, men som ennå ikke er klare til å bli forpliktet.

Git Stash vs Git Reset

Begge kommandoene kan kombineres for å administrere endringer i et Git-depot og har ulike brukstilfeller.

Git reset og Git stash Med disse to kommandoene kan vi gjenopprette alle tidligere slettede og sikkerhetskopierte filer til gjeldende arbeidskatalog. Disse to primære distinksjonene er som følger:



Git Stash

Git Reset

Git stash brukes til å lagre filene som er gjort modifikasjoner og ikke er klare til å commit.

Git reset kan angre endringene fullstendig og endre grenpekeren til den nye commit

Utviklere kan bytte grener og jobbe med andre oppgaver uten å påvirke gjeldende endringer.

Endringer som allerede er gjort blir forkastet av Git-tilbakestilling.

Git Stash vs Git Stage

Staging brukes for å gjøre endringene klare for den påfølgende commit, mens Git stash brukes til å ta en sikkerhetskopi av filer som har blitt modifisert, men som ennå ikke er klare til commit. Begge kommandoene kan kombineres for å administrere endringer i et Git-depot og har ulike brukstilfeller.

Git Stash Git Stage
Git stash brukes til å ta sikkerhetskopi av filer Filer legges til git-indeksen ved å bruke git-stadiet.

Git stash brukes hvis du trenger å bytte til en annen oppgave eller gren mens du jobber med en funksjon eller feilretting.

Git-stadier-modifikasjoner skal inkluderes i den påfølgende commit når du bruker git add-kommandoen.

Hvilken mappe lagrer Git Stash-historien?

Når vi bruker git stash vil dataene bli lagret i form av stash i vårt lokale depot. Som standard vil dataene bli lagret i git/refs/stash-filen. I denne filen er alle referansene lagret og de faktiske dataene lagres i .git/objects-katalogen, akkurat som andre Git-objekter.

linkedlist java

Kommandoen nedenfor brukes til å liste opp alle stashene som er opprettet.

git stash list>

Hvordan lagrer du endringer i Git?

For å lagre de ikke-forpliktede endringene for senere bruk, kan du bruke 'git stash' kommando. Denne kommandoen lagrer dine lokale modifikasjoner og tilbakestiller arbeidskatalogen til å matche HEAD commit slik at den vil gi deg en ren arbeidskatalog.

Her er noen viktige alternativer som er mest brukt:

    Git stash Git stash lagre Git stash liste Git stash bruk Git stash endringer Git stash pop Git stash drop Git stash clear Git stash branch

Stashing Your Work (Git Stash)

git stash>
git status

Kjører som standard git stash vil lagre endringene som har blitt lagt til i indeksen din (stadierte endringer) og endringer som er gjort i filer som for øyeblikket spores av Git (ufasede endringer). For å gjemme usporede filer, bruk git stash -u .

Administrere flere oppbevaringssteder (Git Stash List)

Du kan opprette flere stash og se dem ved å bruke 'git stash list' kommando. Hver oppbevaringsoppføring er oppført med navnet sitt (f.eks. stash@{1} ), navnet på filialen som var aktuell da oppføringen ble gjort, og en kort beskrivelse av forpliktelsen oppføringen var basert på.

git stash list>
git stash liste

For å gi mer kontekst til oppbevaringen lager vi oppbevaringen ved å bruke følgende kommando:

git stash save 'message'>

Hva er Git Stash Apply And POP (Git Stash Apply & POP)

Du kan bruke de tidligere lagrede endringene på nytt med 'git stash pop' eller «git stash gjelder» kommandoer. Den eneste forskjellen mellom begge kommandoene er det 'git stash pop' fjerner endringene fra oppbevaringen og bruker endringene i arbeidskopien på nytt mens «git stash gjelder» bruker bare endringene i arbeidskopien på nytt uten å fjerne endringene fra oppbevaringen. Med enkle ord, pop fjerner tilstanden fra oppbevaringslisten mens søke om fjerner ikke staten fra oppbevaringslisten. Ved hjelp av den påfølgende kommandoen kan vi bruke de lagrede endringene på nytt. Den nyeste oppbevaringen vil bli brukt på arbeidskatalogen vår, og den vil også bli tatt fra listen over oppbevaringssteder.

git stash pop>
git stash pop
git stash apply>
git stash gjelder

Som standard 'git stash pop' eller «git stash gjelder» vil bruke den sist opprettede stashen på nytt: stash@{0} For å velge hvilken stash som skal brukes, kan du sende identifikatoren som siste argument ( For eg. :- git stash pop stash@{2}).

Git Stash Show

git stash show kommandoen brukes til å vise sammendraget av operasjoner utført på stash.

git stash show>
git stash show

Opprette en gren fra din Stash (Git Stash Branch)

Hvis du vil opprette og sjekke ut en ny gren fra commit-en der lagringsplassen opprinnelig ble opprettet og bruke endringene som er lagret i arkivet, bruk 'git stash branch branch_name stash_name' . Den dropper stashen som er gitt som argument, og hvis ingen stash er gitt, slipper den den siste.

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

Rydd opp i oppbevaringen (Git Stash Clear)

For å slette en bestemt stash ( For eksempel: – stash@{1}), bruk «git stash drop stash@{1}» . Som standard faller denne kommandoen stash@{0} hvis ingen argumenter er gitt ( git stash drop ). For å slette alle oppbevaringer på en gang, bruk «git stash clear» kommando.

Git Stash Clear

Git stash-kommandoen lar oss beholde uforpliktende modifikasjoner slik at vi kan bruke dem etter behov i fremtiden. Når vi bruker git stash-kommandoen, blir filene automatisk sikkerhetskopiert. Dette lar oss bytte grener, utføre oppgavene våre og deretter enkelt få tilbake filene når vi er klare til å jobbe med dem igjen.

Git stash

Lagring av usporede eller ignorerte filer

Vi kan bruke git stash-kommandoen til å gjemme filene som er usporede eller ignorerte filer. Ved å følge trinnene nedenfor kan vi lagre filene våre:

Trinn 1: Stash endringene for det ved å bruke kommandoen nedenfor.

git stash save --include-untracked>

-inkluder-usporet av dette vil det også gjemme alle usporede filer.

Steg 2: Bekreft oppbevaringen:

Bruk kommandoen nedenfor for å bekrefte at stash ble opprettet:

git stash list>

Trinn 3: Ved å bruke følgende kommando kan vi bringe tilbake og bruke stash.

git stash apply stash@{0}>

Trinn 4: Når vi har fullført lagringen tilbake hvis den er uønsket, kan vi slette lagringen ved å bruke følgende kommando.

git stash drop stash@{0}>

Beste praksis for Git Stash

Her er noen beste fremgangsmåter for å bruke Git stash kommando.

  1. Ikke overbruk git stash: Git stash må brukes moderat når det er veldig viktig å jobbe med en annen oppgave, så er det bare vi som bør bruke git stash det vil påvirke endringene som må gjøres i forpliktelsen.
  2. Unngå unødvendige meldinger: Ved å bruke git stash kan du legge til en melding for å beskrive endringene du lagrer. Gjør budskapet meningsfullt. Når du trenger å huske hva som er i oppbevaringen senere, vil dette komme godt med. Bruk utsagn som er informative og stemningsfulle og som nøyaktig gjenspeiler endringene som skjules.
  3. Ansette filialer: Stashing er et nyttig verktøy når du arbeider med Git-grener. Før du lagrer endringer, lag en ny gren slik at du kan bytte til forskjellige oppgaver eller grener uten å påvirke gjeldende endringer. Gå tilbake til grenen og bruk oppbevaringen når du er klar til å jobbe med modifikasjonene igjen.
  4. Endringer bør gjøres så raskt som mulig: lagring skal kun brukes som en midlertidig løsning. Når du er ferdig med å gjøre et sett med endringer, bør du overføre dem til depotet for å bevare en oversikt over endringene.