Hur man tar bort en gren i Git lokalt och på distans

Hur man tar bort en gren i Git lokalt och på distans

En av de starkaste egenskaperna hos Git är dess lätta grenar. De gör att du effektivt kan arbeta med parallella utvecklingsstadier. En utvecklare kan till och med skapa enskilda grenar för separata buggar. I både tid och rum är grenar nästan utan kostnad.





hur du får tillbaka din rad på snapchat

Många git-arbetsflöden behandlar både långsiktiga och tillfälliga grenar. Därför finns det ofta ett behov av att radera grenar under utvecklingen. Det finns ibland behov av att radera delade filialer, från en fjärrserver, såväl som lokala filialer.





Varför ta bort en gren?

För det första, om du fortfarande tar tag i git finns det en ganska god chans att du skapar en gren och sedan bestämmer dig för att du inte behövde det. Eller du kanske experimenterar med grenar och vill rensa upp efter dig själv. Detta är bra eftersom förgrening i git är en lätt operation. Det är väldigt snabbt och använder diskutrymme effektivt.





Som ett resultat uppmuntrar många git -utvecklingsarbetsflöden till förgreningar, även för mycket små eller korta uppgifter. Till exempel är en gemensam strategi att skapa en gren för en enda buggfix. Detta är sant även om det handlar om att bara en enda författare gör en radändring i en enda fil.

Av dessa skäl är att skapa och ta bort filialer operationer som måste förstås väl. Det kan hända att du ofta tar bort grenar under ett typiskt utvecklingsarbete.



Ett provförvar med grenar

Följande exempel hänvisar till ett exempelförvar med följande struktur:

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

Observera att varje lokal gren har en motsvarande uppströmsgren från fjärrkontrollen: ursprung .





Radera en gren med kommandoraden

Den grundläggande kommandosyntaxen för att radera en gren är:

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

Den enklaste formen av kommandot raderar en lokal gren, förutsatt att alla dess ändringar har slagits samman:





$ git branch -d dev

Du kan inte ta bort den gren som för närvarande är aktiv. om du försöker göra det får du ett meddelande så här:

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

När det går rätt ser du ett bekräftelsemeddelande:

Deleted branch dev (was 1ae41e8).

Om du tar bort en gren som bara existerar lokalt, med oförändrade ändringar, förlorar du dessa ändringar. Därför kommer git att vägra att radera 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 felmeddelandet informerar kan du tvinga bort radering med -D flagga. Men med git kan du ta bort en lokal som inte är sammanfogad om den finns på distans:

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

Att radera en avlägsen gren är helt annorlunda. Du kommer att använda git push kommandot tillsammans med -d flagga att ta bort. Därefter anger du fjärrkontrollens namn (ofta ursprung ) och filialnamnet:

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

Ta bort lokala och fjärrgrenar med GitHub Desktop

Till skillnad från kommandorads-git-programmet, GitHubs skrivbordsapp låter dig bara ta bort den aktiva grenen. Du kan utföra denna åtgärd via Gren -menyn genom att välja Radera alternativet och bekräftar det:

GitHub Desktop låter dig inte ta bort standardgrenen - t.ex. main - även om git själv stöder detta. Om standardgrenen är den som för närvarande är aktiv, inaktiverar appen menyåtgärden.

Om grenen också representerar en avlägsen gren, ger GitHub Desktop möjlighet att ta bort den också från fjärrkontrollen:

Ta bort grenar med GitKraken

GitCrack visar ditt förråds lokala och avlägsna grenar i sidofältet till vänster. Du måste radera varjeseparat.

Håll muspekaren över lämpligt filialnamn och klicka på Gren åtgärdsmeny som ser ut som tre vertikala prickar. Välj på menyn Radera :

Du ser ett bekräftelsemeddelande som informerar dig om att detta är en destruktiv operation. Du kan bekräfta att du vill fortsätta med Radera knapp:

Genom att reflektera standardbeteendet för kommandoradsprogrammet git måste du först byta till en annan gren än den du tar bort. Annars ser du ett felmeddelande:

Radera lokala och fjärrgrenar med Tower

Radera en filial med Torn är väldigt likt att radera en filial med GitKraken. Lokala och avlägsna grenar visas i en panel på vänster sida. Högerklicka på valfri gren och välj alternativet Ta bort från snabbmenyn:

En viktig skillnad är att en avlägsen gren kan raderas tillsammans med sin lokala filial, under bekräftelse:

Tar bort en filial på GitHub

GitHub fungerar bara som en fjärrkälla, så filialer där är fjärrinställda som standard. Om du tar bort en filial med GitHub -webbplatsen måste du ta bort motsvarande lokala gren med någon av de andra metoderna här.

Som med GitHub Desktop -appen tillåter inte GitHub -webbplatsen dig att ta bort standardgrenen. Alternativet visas helt enkelt inte. Att ta bort en gren är dock enkelt. Från förvarets Koda klicka på grenar länken, leta reda på den gren som du vill ta bort och klicka sedan på Ta bort den här grenen ikon, som ser ut som en papperskorg:

Tänk på att det inte finns några kontroller för oförändrade ändringar, så på GitHub kommer filialen helt enkelt att raderas omedelbart. Men eftersom det alltid kommer att representera en avlägsen gren bör detta vara det beteende du förväntar dig.

Observera att när du har tagit bort en knapp till Återställ grenen. Detta är dock helt enkelt en användbar ångra -funktion om du av misstag klickar på raderingsikonen. Lita inte på det, för så fort du uppdaterar eller navigerar bort från sidan förlorar du alternativet!

Radera lokala och fjärrgrenar på Bitbucket

Bitbucket, som GitHub, tillåter dig inte att ta bort standardgrenen. Bitbucket kallar detta för Huvudgren i Förvaringsinställningar . Du kan ta bort alla andra grenar som anges på Grenar fliken, via dess motsvarande Handlingar meny:

Du kan också radera mer än en gren samtidigt om du gör en stor sanering:

Ta bort grenar är en del av ett typiskt Git -arbetsflöde

Git -grenar kan komplicera ditt arbetsflöde, särskilt ett med lokala, fjärrkontroller och spårningsgrenar. Men för enkel daglig utveckling kommer du troligen att skapa och ta bort lokala filialer hela tiden. Detta är en kärnaspekt av ett typiskt git -arbetsflöde du bör vänja dig vid.

Dela med sig Dela med sig Tweet E-post Hur man använder Git -grenar för att strukturera ditt programmeringsprojekt

I den här artikeln kommer vi att titta på vad förgrening din kod betyder, hur man gör det och sätt att hantera uppdateringar av den 'huvudsakliga' git -grenen.

Läs Nästa
Relaterade ämnen
  • Programmering
  • GitHub
Om författaren Bobby Jack(58 artiklar publicerade)

Bobby är en teknikentusiast som arbetade som mjukvaruutvecklare i de flesta av två decennier. Han brinner för spel, jobbar som recensioner -redaktör på Switch Player Magazine och är fördjupad i alla aspekter av online -publicering och webbutveckling.

Mer från Bobby Jack

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera