Slik sletter du en gren i Git lokalt og eksternt

Viktige takeaways

  • Sletting av grener er en viktig del av en typisk Git-arbeidsflyt.
  • Du kan slette en lokal gren ved å bruke kommandoen «git branch -d [branchname]”, men vær forsiktig med usammenslåtte endringer.
  • Ulike verktøy som GitHub Desktop, GitKraken, Tower og Bitbucket har sine egne metoder for å slette grener, så gjør deg kjent med den spesifikke prosessen for hvert verktøy.

Gits grener er så lette at det er enkelt å lage dem når du trenger det. Men det er også lett å ende opp med grener du ikke lenger trenger. Så hva er involvert i å slette en filial?

Hvorfor slette en gren?

For det første, hvis du fortsatt lærer hvordan du strukturerer et prosjekt ved å bruke git-grener, er det en ganske god sjanse for at du oppretter en gren og deretter bestemmer deg for at du ikke trenger det. Dette er greit siden forgrening er en lett operasjon; den er veldig rask og bruker diskplass effektivt.

Som et resultat oppmuntrer mange arbeidsflyter for git-utvikling til forgrening, selv for veldig små eller korte oppgaver. For eksempel er en vanlig strategi å lage en egen gren for hver feilretting.

  Hva er USB Gen 1, Gen 2 og Gen 2×2?

Å slette grener bør være like mye en del av den daglige arbeidsflyten som å lage dem.

Et prøvelager med grener

Eksemplene nedenfor viser til et prøvelager med følgende struktur:

Merk at repoen har to grener: hoved og dev. Hver av disse lokale grenene er en sporingsgren, med en tilsvarende oppstrømsgren på en ekstern server (opprinnelse).

Det er lett å miste oversikten over grener, så sørg for at du vet hvordan du viser git-grener fra kommandolinjen eller viser dem i din foretrukne klient.

Slette en gren ved hjelp av kommandolinjen

Den grunnleggende kommandosyntaksen for å slette en gren er:

 git branch (-d | -D) [-r] <branchname>... 

Slik sletter du en lokal gren

Den enkleste formen for kommandoen sletter en lokal filial, forutsatt at alle endringene er slått sammen:

 git branch -d dev 

Når ting går som det skal, vil du se en bekreftelsesmelding:

Du kan ikke slette grenen som for øyeblikket er aktiv; hvis du prøver å gjøre det, får du en melding som denne:

Hvis du sletter en lokal filial med usammenslåtte, ikke-pushte endringer, vil du miste disse endringene. Derfor vil git nekte å slette en slik gren som standard. I dette eksemplet har dev usammenslåtte endringer som ikke har blitt sendt til den eksterne grenen:

Som feilmeldingen sier, kan du tvinge sletting med -D-flagget.

Du kan slette en lokal sporingsgren hvis den tilhørende eksterne grenen er oppdatert, selv om den ikke er slått sammen. Git vil fortsatt vise en advarsel, så du er klar over hva som har skjedd:

  Fezibo Basic stående skrivebord: En jevn opplevelse

Slik sletter du en ekstern gren

Å slette en ekstern gren er ganske annerledes. Du bruker git push-kommandoen sammen med -d-flagget for å slette. Etter det, oppgi navnet på fjernkontrollen (ofte opprinnelse) og filialnavnet:

Sletting av lokale og eksterne grener med GitHub Desktop

I motsetning til kommandolinje git-programmet, GitHubs skrivebordsapp vil bare la deg slette den aktive grenen. Du kan utføre denne handlingen via Branch-menyen, ved å velge Slett-alternativet og bekrefte det:

GitHub Desktop lar deg ikke slette standardgrenen – f.eks main – selv om git selv støtter dette. Hvis standardgrenen er den som for øyeblikket er aktiv, deaktiverer appen menyhandlingen.

Hvis grenen også representerer en ekstern gren, gir GitHub Desktop muligheten til å slette den fra fjernkontrollen også:

Slette grener ved hjelp av GitKraken

GitKraken viser depotets lokale og eksterne grener i venstre sidefelt. Du må slette hver separat.

Hold markøren over det aktuelle grennavnet og klikk på menyen for grenhandlinger som ser ut som tre vertikale prikker. Fra menyen velger du Slett :

Du vil se en bekreftelsesmelding som informerer deg om at dette er en destruktiv operasjon. Du kan bekrefte at du vil fortsette med Slett-knappen:

Som gjenspeiler standardoppførselen til git-kommandolinjeprogrammet, må du først bytte til en annen gren enn den du sletter. Ellers vil du se en feilmelding:

Slette lokale og eksterne grener ved hjelp av Tower

Slette en gren med Tårn ligner veldig på å slette en gren med GitKraken. Appen viser lokale og eksterne grener i et panel på venstre side. Høyreklikk på en gren og velg Slett-alternativet fra hurtigmenyen:

  10 beste GoodNotes-maler for perfekt digital planlegging

En viktig forskjell er at du kan slette en ekstern filial, sammen med dens lokale filial, under bekreftelse:

Sletting av en gren på GitHub

GitHub fungerer bare som en ekstern kilde, så grener der er eksterne som standard. Hvis du sletter en gren ved hjelp av GitHub-nettstedet, må du slette den tilsvarende lokale grenen ved å bruke en av de andre metodene her.

Som med GitHub Desktop-appen, vil ikke GitHub-nettstedet tillate deg å slette standardgrenen. Hvis du prøver, vil du se en feilmelding:

Å slette en hvilken som helst annen gren er imidlertid enkelt. Fra depotets kodeside klikker du på grenene, finn grenen du vil slette, og klikker deretter på Slett gren-ikonet, som ser ut som en søppelbøtte:

Vær oppmerksom på at det ikke er noen kontroller for usammenslåtte endringer, så GitHub vil ganske enkelt slette grenen umiddelbart. Men siden det alltid vil representere en ekstern gren, bør denne oppførselen være fornuftig.

Merk at etter sletting vil du se en knapp for å gjenopprette grenen. Dette er imidlertid ganske enkelt en nyttig angrefunksjon, i tilfelle du klikker på sletteikonet ved et uhell. Ikke stol på det, for så snart du oppdaterer eller navigerer bort fra siden, mister du alternativet!

Sletting av lokale og eksterne grener på Bitbucket

Bitbucket, som GitHub, vil ikke tillate deg å slette standardgrenen. Bitbucket kaller dette hovedgrenen i arkivinnstillinger. Du kan slette en hvilken som helst annen gren som er oppført på Filener-fanen, via den tilhørende handlingsmenyen:

Du kan også slette mer enn én gren samtidig hvis du gjør en stor oppryddingsoperasjon:

Sletting av grener er en del av en typisk Git-arbeidsflyt

Git-grener kan komplisere arbeidsflyten din, spesielt en med lokale, eksterne og sporingsgrener. Men for enkel daglig utvikling vil du sannsynligvis opprette og slette lokale filialer hele tiden. Dette er et kjerneaspekt av en typisk git-arbeidsflyt du bør bli vant til.

Hvis du synes det er vanskelig å huske nøyaktig hvordan du sletter en gren, bør du vurdere å sette opp aliaser for å fjerne grener og ganske enkelt prosessen.