Hjem » Siste artikler » Slik bruker du Git stash til å rydde opp i halvferdig kode uten å miste noe

Slik bruker du Git stash til å rydde opp i halvferdig kode uten å miste noe

Hovedillustrasjon
Hovedillustrasjon. Foto: Alicia Christin Gerald / Pexels.

I mange prosjekter blir man avbrutt midt i en endring: en feil i produksjon, en rask hotfix eller en kollega som trenger en kjapp code review. Da sitter du med halvferdig kode som ikke bør inn i et commit, men du vil heller ikke miste den.

Git stash er laget for akkurat disse situasjonene. Med noen få kommandoer kan du pakke bort pågående endringer, bytte gren, gjøre det du må, og hente alt trygt tilbake igjen.

Hva er Git stash, og når er det nyttig?

Git stash lagrer endringene dine midlertidig uten å legge dem i historikken. Det gjelder både endrede filer og, om du vil, nye filer som ikke er commitet enda. Stashen legger seg på en egen stabel som Git holder styr på, knyttet til repoet ditt.

Det passer særlig godt når du:

  • må bytte branch, men har endringer som ikke kan commites ennå
  • vil teste noe raskt uten å miste nåværende arbeid
  • skal trekke inn ny kode og vil slippe merge-konflikter på halvferdige filer

Grunnleggende: stash, bytt branch, hent tilbake

Den vanligste arbeidsflyten med Git stash er enkel:

  1. Lagre bort endringer:git stash push
  2. Gjør det du må på en annen branch
  3. Hent endringene tilbake:git stash pop

Standardkommandoen er:
git stash push -m “kort beskrivelse”

-mlar deg gi stashen et navn, som gjør det mye enklere å huske hva som ble lagt bort dersom du har flere stashes. Etterpå kan du fritt bytte branch med for eksempelgit switchellergit checkout.

Forskjellen på git stash pop og apply

For å hente tilbake endringer har du to hovedvalg:

  • git stash pop: legger inn endringene og fjerner stashen fra stabelen
  • git stash apply: legger inn endringene, men lar stashen ligge igjen

Brukpopnår du er trygg på at stashen er ferdig brukt, ogapplynår du vil teste noe eller legge inn samme stash flere steder. Mange velger alltidapplyførst, og sletter stashen eksplisitt hvis alt ser bra ut.

For å slette en bestemt stash:
git stash drop stash@{0}

Slik ser du hva du har stash’et

Når du har mer enn én stash, er oversikt viktig. Du kan se listen med:
git stash list

Resultatet ligner ofte på:
stash@{0}: On feature/login: WIP på validering

For å se innholdet i en stash:

  • git stash showgir en kort oppsummering av endrede filer
  • git stash show -pviser hele diffen, linje for linje
Dette er nyttig før du bestemmer deg for om du vil bruke eller slette en stash.

Stashe også nye filer (untracked og ignored)

Tematisk illustrasjon
Tematisk illustrasjon. Foto: 85mm.ca / Unsplash.

Som standard tar Git stash bare med endringer i filer som Git allerede kjenner til. Nye filer blir ikke automatisk med, noe som ofte overrasker mange.

Hvis du også vil stashe nye filer, kan du bruke:

  • git stash push -ufor å ta med untracked filer
  • git stash push -afor å ta med både untracked og ignorerte filer
Bruk-amed omhu, siden det kan dra med mye du egentlig ikke ønsker å flytte på, som byggefiler.

Vanlige feil og hvordan du unngår dem

En typisk felle er å stashe, jobbe videre, og så glemme hva som ligger i de ulike stashene. Da ender man lett med forvirring og dobbeltarbeid. Gi alltid stashen en kort, presis beskjed, for eksempel:
git stash push -m “WIP: refaktorering av user service”

En annen felle er konflikter når du henter tilbake en stash. Hvis branchen har endret seg mye mens stashen lå på vent, kan Git ende i samme type konflikter som ved en merge. Løs dem på vanlig måte ved å redigere filene, kjøregit addpå de løste filene og fortsette som normalt.

Praktiske scenarioer der Git stash gir stor gevinst

Scenario 1: Hotfix midt i en refaktorering
Du jobber med en større omskriving, men produksjon har en kritisk feil. Løsning:

  • git stash push -m “refaktorering user service”
  • Bytt til produksjonsbranchen og gjør hotfix
  • Merge og deploy
  • Bytt tilbake til feature-branch
  • git stash popfor å hente tilbake refaktoreringen

Scenario 2: Rask test på ren branch
Du vil kjøre en test eller et script på en ren branch uten lokale endringer. Løsning:

  • git stash push -m “lokale endringer før test”
  • Kjør testen
  • git stash popnår du er ferdig

En enkel sjekkliste for trygg bruk av Git stash

For å bruke Git stash trygt og effektivt, kan du følge denne korte sjekklisten i daglig arbeid:

  • Gi alltid stashen et navn med-m
  • Bruk-uhvis du også vil ta med nye filer
  • Sjekk stashes jevnlig medgit stash listog rydd opp
  • Brukgit stash show -pfør du popper gamle stashes
  • Slett ubrukte stashes eksplisitt medgit stash drop

Med disse vanene blir Git stash et lite, men svært effektivt verktøy for å holde arbeidsområdet ditt ryddig uten at noe verdifullt arbeid går tapt.

0 kommentarer