Sådan sletter du en filial i Git lokalt og eksternt

Nøgle takeaways

  • Sletning af grene er en vigtig del af en typisk Git-arbejdsgang.
  • Du kan slette en lokal filial ved at bruge kommandoen “git branch -d [branchname]”, men vær forsigtig med usammenflettede ændringer.
  • Forskellige værktøjer som GitHub Desktop, GitKraken, Tower og Bitbucket har deres egne metoder til at slette grene, så gør dig bekendt med den specifikke proces for hvert værktøj.

Gits grene er så lette, at det er nemt at skabe dem, når du har brug for det. Men det er også nemt at ende med rester af grene, du ikke længere har brug for. Så hvad er involveret i at slette en filial?

Hvorfor slette en filial?

For det første, hvis du stadig lærer at strukturere et projekt ved hjælp af git branches, er der en ret god chance for, at du vil oprette en gren og derefter beslutte, at du ikke behøvede det. Dette er fint, da forgrening er en letvægtsoperation; det er meget hurtigt og bruger diskplads effektivt.

Som et resultat opmuntrer mange Git-udviklingsarbejdsgange til forgrening, selv for meget små eller korte opgaver. For eksempel er en fælles strategi at oprette en separat gren for hver eneste fejlrettelse.

  10 færdighedsstyringsplatforme til at styrke dine medarbejdere

Sletning af filialer bør være lige så meget en del af din daglige arbejdsgang, som at oprette dem.

Et prøvelager med grene

Eksemplerne nedenfor henviser til et eksempellager med følgende struktur:

Bemærk, at repoen har to grene: hoved og dev. Hver af disse lokale afdelinger er en sporingsgren med en tilsvarende opstrømsgren på en fjernserver (oprindelse).

Det er nemt at miste overblikket over filialer, så sørg for at du ved, hvordan man viser git-grene fra kommandolinjen eller se dem i din foretrukne klient.

Sletning af en filial ved hjælp af kommandolinjen

Den grundlæggende kommandosyntaks til at slette en gren er:

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

Sådan sletter du en lokal filial

Den enkleste form for kommandoen sletter en lokal filial, forudsat at alle dens ændringer er blevet slået sammen:

 git branch -d dev 

Når tingene går rigtigt, får du vist en bekræftelsesmeddelelse:

Du kan ikke slette den gren, der i øjeblikket er aktiv; hvis du prøver at gøre det, får du en besked som denne:

Hvis du sletter en lokal filial med usammenflettede, ikke-skubbede ændringer, mister du disse ændringer. Derfor vil git nægte at slette en sådan gren som standard. I dette eksempel har dev usammenflettede ændringer, der ikke er blevet skubbet til den eksterne gren:

Som fejlmeddelelsen siger, kan du tvinge sletning med -D-flaget.

Du kan slette en lokal sporingsgren, hvis dens tilsvarende fjerngren er opdateret, selvom den ikke er fusioneret. Git vil stadig vise en advarsel, så du er klar over, hvad der er sket:

  Top 10 Video Voice Over-værktøjer til at forbedre dit visuelle indhold

Sådan sletter du en ekstern filial

Sletning af en ekstern filial er helt anderledes. Du skal bruge git push-kommandoen sammen med -d-flaget for at slette. Angiv derefter navnet på fjernbetjeningen (ofte oprindelse) og filialnavnet:

Sletning af lokale og eksterne filialer med GitHub Desktop

I modsætning til kommandolinje git-programmet, GitHubs desktop-app vil kun lade dig slette den aktive gren. Du kan udføre denne handling via Branch-menuen ved at vælge Slet og bekræfte den:

GitHub Desktop vil ikke lade dig slette standardgrenen – f.eks. main – selvom git selv understøtter dette. Hvis standardgrenen er den, der i øjeblikket er aktiv, deaktiverer appen menuhandlingen.

Hvis grenen også repræsenterer en ekstern gren, giver GitHub Desktop mulighed for også at slette den fra fjernbetjeningen:

Sletning af filialer ved hjælp af GitKraken

GitKraken viser dit lagers lokale og eksterne filialer i venstre sidebjælke. Du skal slette hver enkelt separat.

Hold markøren over det relevante grennavn, og klik på menuen Grenhandlinger, der ligner tre lodrette prikker. Fra menuen skal du vælge Slet :

Du vil se en bekræftelsesmeddelelse, der informerer dig om, at dette er en ødelæggende operation. Du kan bekræfte, at du vil fortsætte med knappen Slet:

Som afspejler standardadfærden for git-kommandolinjeprogrammet, skal du først skifte til en anden gren end den, du sletter. Ellers vil du se en fejlmeddelelse:

Sletning af lokale og eksterne filialer ved hjælp af Tower

Sletning af en filial med Tårn ligner meget at slette en gren med GitKraken. Appen viser lokale og eksterne filialer i et panel i venstre side. Højreklik på en hvilken som helst gren, og vælg indstillingen Slet fra kontekstmenuen:

  Virtual Disk Image Formater forklaret

En vigtig forskel er, at du kan slette en ekstern filial sammen med dens lokale filial under bekræftelse:

Sletning af en filial på GitHub

GitHub fungerer kun som en fjernkilde, så grene der er fjerntliggende som standard. Hvis du sletter en filial ved hjælp af GitHub-webstedet, bliver du nødt til at slette den tilsvarende lokale filial ved hjælp af en af ​​de andre metoder her.

Som med GitHub Desktop-appen, vil GitHub-webstedet ikke tillade dig at slette standardgrenen. Hvis du prøver, får du vist en fejlmeddelelse:

Det er dog ligetil at slette enhver anden gren. Fra lagerets kodeside, klik på filiallinket, find den filial, der skal slettes, og klik derefter på ikonet Slet filial, der ligner en skraldespand:

Vær opmærksom på, at der ikke er kontrol for usammenflettede ændringer, så GitHub sletter blot grenen med det samme. Men da det altid vil repræsentere en fjern gren, bør denne adfærd give mening.

Bemærk, at du efter sletning vil se en knap til at gendanne grenen. Dette er dog simpelthen en nyttig fortrydelsesfunktion, bare hvis du ved et uheld klikker på sletteikonet. Stol ikke på det, for så snart du opdaterer eller navigerer væk fra siden, mister du muligheden!

Sletning af lokale og eksterne filialer på Bitbucket

Bitbucket, ligesom GitHub, vil ikke tillade dig at slette standardgrenen. Bitbucket kalder dette hovedgrenen i indstillingerne for lager. Du kan slette enhver anden gren, der er angivet på fanen Filialer, via dens tilsvarende handlingsmenu:

Du kan også slette mere end én gren på én gang, hvis du laver en stor oprydningsoperation:

Sletning af filialer er en del af en typisk Git-arbejdsgang

Git-grene kan komplicere din arbejdsgang, især en med lokale, fjern- og sporingsgrene. Men for enkel daglig udvikling vil du sandsynligvis oprette og slette lokale afdelinger hele tiden. Dette er et kerneaspekt af en typisk git-arbejdsgang, du bør vænne dig til.

Hvis du har svært ved at huske præcis, hvordan du sletter en filial, kan du overveje at oprette aliaser for at fjerne filialer og blot processen.