Sådan slettes en gren i Git lokalt og eksternt

Sådan slettes en gren i Git lokalt og eksternt

En af de stærkeste træk ved Git er dens lette grene. De giver dig mulighed for effektivt at arbejde på parallelle udviklingsstadier. En udvikler kan endda oprette individuelle grene til separate fejl. I både tid og rum er filialer næsten uden omkostninger.





hvordan slukker jeg lommelygten

Mange git-arbejdsgange omhandler både langsigtede og midlertidige grene. Derfor er der ofte behov for at slette grene under udviklingen. Der er lejlighedsvis behov for at slette delte filialer fra en fjernserver såvel som lokale filialer.





Hvorfor slette en filial?

For det første, hvis du stadig får styr på git, er der en ganske god chance for, at du opretter en gren og derefter beslutter, at du ikke behøvede det. Eller du eksperimenterer måske med grene og vil rydde op efter dig selv. Dette er fint, da forgrening i git er en let operation. 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 gren for en enkelt fejlrettelse. Dette er sandt, selvom det kun involverer en enkelt forfatter, der foretager en ændring på en linje i en enkelt fil.

Af disse årsager er oprettelse og sletning af filialer operationer, der skal forstås godt. Det kan være, at du ofte sletter filialer under en typisk udviklingsarbejdsgang.



Et prøveopbevaringssted med grene

Følgende eksempler refererer til et prøveopbevaringssted med følgende struktur:

$ git branch -vv
1 dev 1ae41e8 [origin/dev] first commit
2 * main 1ae41e8 [origin/main] first commit

Bemærk, at hver lokal gren har en tilsvarende opstrøms gren fra fjernbetjeningen: oprindelse .





Sletning af en gren ved hjælp af kommandolinjen

Den grundlæggende kommandosyntaks for sletning af en gren er:

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

Den enkleste form for kommandoen sletter en lokal gren, forudsat at alle dens ændringer er blevet flettet:





$ git branch -d dev

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:

error: Cannot delete branch 'main' checked out at '/tmp/sandbox'

Når det går rigtigt, ser du en bekræftelsesmeddelelse:

Deleted branch dev (was 1ae41e8).

Hvis du sletter en gren, der kun findes lokalt, med uflettede ændringer, mister du disse ændringer. Derfor vil git nægte at slette en filial i en sådan situation som standard:

error: The branch ‘dev’ is not fully merged.
If you are sure you want to delete it, run 'git branch -D dev’.

Som fejlmeddelelsen informerer, kan du tvinge til sletning med -D flag. Git giver dig dog mulighed for at slette en ikke -flettet lokal gren, hvis den eksternt findes:

warning: deleting branch ‘dev’ that has been merged to
'refs/remotes/origin/dev’, but not yet merged to HEAD.
Deleted branch dev (was 9a6d20b).

Sletning af en fjerngren er ganske anderledes. Du vil bruge git skub kommando sammen med -d flag, der skal slettes. Derefter skal du angive navnet på fjernbetjeningen (ofte oprindelse ) og filialnavnet:

$ git push -d origin dev
To github.com:bobbykjack/sandbox.git
- [deleted] dev

Sletning af lokale og eksterne grene med GitHub Desktop

I modsætning til kommandolinjens git-program, GitHub's desktop -app vil kun lade dig slette den aktive gren. Du kan udføre denne handling via Afdeling menuen ved at vælge Slet valgmulighed og bekræfter det:

GitHub Desktop lader dig ikke 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 fjerngren, giver GitHub Desktop også mulighed for at slette den fra fjernbetjeningen:

Sletning af grene ved hjælp af GitKraken

GitCrack viser dit depot lokale og fjerntliggende grene i venstre sidebjælke. Du skal slette hverseparat.

Hold markøren over det relevante filialnavn, og klik på Afdeling handlingsmenu, der ligner tre lodrette prikker. Vælg i menuen Slet :

Du får vist en bekræftelsesmeddelelse, der informerer dig om, at dette er en destruktiv handling. Du kan bekræfte, at du vil fortsætte med Slet knap:

Ved at afspejle 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 grene ved hjælp af Tower

Sletter en filial med Tårn ligner meget på at slette en gren med GitKraken. Lokale og fjerntliggende grene vises i et panel i venstre side. Højreklik på en gren og vælg indstillingen Slet i genvejsmenuen:

En vigtig forskel er, at en fjerngren kan slettes sammen med sin lokale filial under bekræftelse:

Sletter en gren på GitHub

GitHub fungerer kun som en fjernkilde, så filialer der er som standard fjerntliggende. Hvis du sletter en gren ved hjælp af GitHub -webstedet, skal du slette den tilsvarende lokale gren ved hjælp af en af ​​de andre metoder her.

Som med GitHub Desktop -appen tillader GitHub -webstedet dig ikke at slette standardgrenen. Indstillingen vises simpelthen ikke. Sletning af en gren er dog ligetil. Fra depotets Kode side, klik på grene link, find den filial, der skal slettes, og klik derefter på Slet denne gren ikon, der ligner en skraldespand:

Vær opmærksom på, at der ikke er kontroller for ikke -flettede ændringer, så på GitHub vil grenen simpelthen blive slettet med det samme. Men da det altid vil repræsentere en fjerntliggende gren, bør dette være den adfærd, du forventer.

Bemærk, at efter sletning vil du se en knap til Gendan grenen. Dette er dog simpelthen en nyttig fortrydelsesfunktion, 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 grene på Bitbucket

Bitbucket vil, ligesom GitHub, ikke tillade dig at slette standardgrenen. Bitbucket kalder dette Hovedgren i Opbevaringsindstillinger . Du kan slette enhver anden gren, der er angivet på Grene fanen via dens tilsvarende Handlinger menu:

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

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

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

Del Del Tweet E -mail Sådan bruges Git -grene til at strukturere dit programmeringsprojekt

I denne artikel ser vi på, hvad forgrening din kode betyder, hvordan du gør det og måder at administrere opdateringer til 'hoved' git -grenen.

Læs Næste
Relaterede emner
  • Programmering
  • GitHub
Om forfatteren Bobby Jack(58 artikler udgivet)

Bobby er en teknologientusiast, der arbejdede som softwareudvikler i det meste af to årtier. Han brænder for spil, arbejder som Reviews Editor hos Switch Player Magazine og er nedsænket i alle aspekter af onlineudgivelse og webudvikling.

Mere fra Bobby Jack

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere