Slik sletter du en gren i Git lokalt og eksternt

Slik sletter du en gren i Git lokalt og eksternt

En av de sterkeste egenskapene til Git er dens lette grener. De lar deg arbeide effektivt med parallelle utviklingsstadier. En utvikler kan til og med lage individuelle grener for separate feil. Både i tid og rom er grener nesten uten kostnad.





hvordan bli med på et Netflix -parti

Mange git-arbeidsflyter omhandler både langsiktige og midlertidige grener. Derfor er det ofte behov for å slette grener under utvikling. Noen ganger er det behov for å slette delte grener, fra en ekstern server, så vel som lokale filialer.





Hvorfor slette en gren?

For det første, hvis du fortsatt tar tak i git, er det en ganske god sjanse for at du oppretter en gren og deretter bestemmer deg for at du ikke trenger det. Eller du kan eksperimentere med grener og ønsker å rydde opp etter deg selv. Dette er greit siden forgrening i git er en lett operasjon. Det er veldig raskt og bruker diskplass effektivt.





Som et resultat oppfordrer mange git -utviklingsarbeidsflyter til forgrening, selv for svært små eller korte oppgaver. For eksempel er en vanlig strategi å lage en gren for en enkelt feilrettelse. Dette er sant, selv om det bare involverer en enkelt forfatter som gjør en endring på en linje i en enkelt fil.

Av disse grunnene er opprettelse og sletting av grener operasjoner som må forstås godt. Det kan hende du ofte sletter grener under en typisk utviklingsarbeidsflyt.



Et eksempel på depot med grener

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

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

Vær oppmerksom på at hver lokal gren har en tilsvarende oppstrøms gren fra fjernkontrollen: opprinnelse .





Slette en gren ved hjelp av kommandolinjen

Den grunnleggende kommandosyntaksen for å slette en gren er:

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

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





$ git branch -d dev

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

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

Når det går som det skal, ser du en bekreftelsesmelding:

Deleted branch dev (was 1ae41e8).

Hvis du sletter en gren som bare eksisterer lokalt, med ikke -sammenslåtte endringer, mister du disse endringene. Derfor vil git nekte å slette en gren i en slik situasjon, 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 feilmeldingen informerer, kan du tvinge til sletting med -D flagg. Imidlertid lar git deg slette en ikke -sammenslått lokal gren hvis den eksisterer eksternt:

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

Slette en ekstern gren er ganske annerledes. Du bruker git push kommandoen sammen med -d flagg som skal slettes. Etter det, oppgi navnet på fjernkontrollen (ofte opprinnelse ) og filialnavnet:

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

Slette lokale og eksterne grener med GitHub Desktop

I motsetning til kommandolinjens git-program, GitHubs skrivebordsprogram lar deg bare slette den aktive grenen. Du kan utføre denne handlingen via Gren -menyen ved å velge Slett alternativet og bekrefter det:

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

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

Slette grener ved hjelp av GitKraken

GitCrack viser depotets lokale og eksterne grener i venstre sidefelt. Du må slette hverhver for seg.

Hold markøren over det aktuelle filialnavnet, og klikk på Gren handlingsmeny som ser ut som tre vertikale prikker. Velg fra menyen Slett :

Du vil se en bekreftelsesmelding som informerer deg om at dette er en ødeleggende operasjon. Du kan bekrefte at du vil fortsette med Slett knapp:

Når du reflekterer standardatferden til kommandolinjeprogrammet git, må du først bytte til en annen gren enn den du sletter. Ellers ser du en feilmelding:

Slette lokale og eksterne grener ved hjelp av Tower

Sletter en gren med Tårn er veldig lik å slette en gren med GitKraken. Lokale og eksterne grener vises i et panel på venstre side. Høyreklikk på en gren og velg Slett-alternativet fra hurtigmenyen:

En viktig forskjell er at en ekstern gren kan slettes sammen med den lokale grenen under bekreftelse:

Sletter 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, tillater ikke GitHub -nettstedet deg å slette standardgrenen. Alternativet vises rett og slett ikke. Det er greit å slette en gren. Fra depotets Kode siden, klikk på grener lenken, finn grenen du vil slette, og klikk deretter på Slett denne grenen ikon, som ser ut som en søppelbøtte:

Vær oppmerksom på at det ikke er noen kontroller for ikke -sammenslåtte endringer, så på GitHub vil grenen ganske enkelt bli slettet umiddelbart. Siden den imidlertid alltid vil representere en ekstern gren, bør dette være oppførselen du forventer.

Vær oppmerksom på at etter at du har slettet, ser du en knapp til Restaurere grenen. Dette er imidlertid ganske enkelt en nyttig angrefunksjon, hvis du ved et uhell klikker på sletteikonet. Ikke stol på det, for så snart du oppdaterer eller navigerer bort fra siden, mister du muligheten!

Sletter lokale og eksterne grener på Bitbucket

Bitbucket, som GitHub, lar deg ikke slette standardgrenen. Bitbucket kaller dette Hovedgren i Lagringsinnstillinger . Du kan slette alle andre grener som er oppført på Grener fanen, via den tilhørende Handlinger Meny:

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

Slette grener er en del av en typisk Git -arbeidsflyt

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

Dele Dele kvitring E -post Hvordan bruke Git -grener til å strukturere programmeringsprosjektet

I denne artikkelen ser vi på hva forgrening av koden din betyr, hvordan du gjør det og måter å administrere oppdateringer til den 'viktigste' git -grenen.

Les neste
Relaterte temaer
  • Programmering
  • GitHub
Om forfatteren Bobby Jack(58 artikler publisert)

Bobby er en teknologientusiast som jobbet som programvareutvikler i de fleste to tiårene. Han brenner for spill, jobber som Reviews Editor i Switch Player Magazine, og er fordypet i alle aspekter av online publisering og webutvikling.

Mer fra Bobby Jack

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere