Nyheter i Android, Telefoner, Prylar Och Recensioner

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 låter dig arbeta på parallella utvecklingsstadier effektivt. En utvecklare kan till och med skapa individuella grenar för separata buggar. I både tid och rum är grenar nästan utan kostnad.

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

Varför radera en filial?

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 så kanske du experimenterar med grenar och vill rensa upp efter dig. 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 förgrening, även för mycket små eller korta uppgifter. Till exempel är en vanlig strategi att skapa en filial för en enskild buggfix. Detta gäller även om det bara innebär att en enda författare gör en ändring på en rad i en enda fil.

Av dessa skäl är att skapa och ta bort filialer operationer som måste förstås väl. Du kanske ofta tar bort grenar under ett typiskt utvecklingsarbetsflöde.

Ett provförråd med grenar

Följande exempel hänvisar till ett exempelförråd 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.

Ta bort en gren med kommandoraden

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

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

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

$ git branch -d dev

Du kan inte ta bort grenen 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 allt går rätt ser du ett bekräftelsemeddelande:

Deleted branch dev (was 1ae41e8).

Om du tar bort en gren som bara finns lokalt, med osammanslagna ändringar, kommer du att förlora dessa ändringar. Därför vägrar git att ta bort en gren 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. Däremot kommer git att tillåta dig att ta bort en ej sammanslagen lokal gren 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 ta bort en fjärrgren är helt annorlunda. Du kommer att använda git push kommando tillsammans med -d flagga för att radera. Efter det anger du namnet på fjärrkontrollen (ofta ursprung) och filialnamnet:

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

Ta bort lokala och fjärranslutna grenar med GitHub Desktop

Till skillnad från kommandoradsprogrammet git låter GitHubs skrivbordsapp 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äfta det:

Relaterad  Media: Kina stänger cirka 850 erfarna spelstudior efter att regeringen vägrat att licensiera spel

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 fjärrgren, ger GitHub Desktop möjlighet att ta bort den från fjärrkontrollen också:

Ta bort grenar med GitKraken

GitKraken visar ditt förvars lokala och avlägsna grenar i den vänstra sidofältet. Du måste radera varje separat.

Håll muspekaren över lämpligt filialnamn och klicka på Gren åtgärdsmeny som ser ut som tre vertikala punkter. Välj från menyn Ta bort :

Du kommer att se 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:

Som återspeglar standardbeteendet för git kommandoradsprogrammet, måste du först byta till en annan gren än den du tar bort. Annars kommer du att se ett felmeddelande:

Ta bort lokala och fjärranslutna grenar med hjälp av Tower

Att ta bort en gren med Tower är väldigt lik att ta bort en gren med GitKraken. Lokala och avlägsna filialer 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 fjärrfilial kan raderas tillsammans med dess lokala filial under bekräftelse:

Ta bort en filial på GitHub

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

Relaterad  50 Cent lanserar hörlurar som känner av din puls och ändrar musikens takt därefter

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 sida, klicka på grenar länk, leta reda på grenen som du vill ta bort och klicka sedan på Ta bort den här grenen ikon, som ser ut som en papperskorg:

Var medveten om att det inte finns några kontroller för osammanslagna ändringar, så på GitHub kommer grenen 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 du efter borttagning ser en knapp för att Å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 kommer du att förlora alternativet!

Ta bort lokala och fjärranslutna filialer på Bitbucket

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

Du kan också ta bort mer än en gren samtidigt om du gör en stor saneringsoperation:

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

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

Relaterad  MIT utvecklade konstgjorda lågspänningsmuskler för små drönare – med dem kunde de lyfta föremål nästan 3 gånger tyngre än de själva – Aroged

Om författaren

Bobby Jack (65 artiklar publicerade)

Bobby är en teknikentusiast som arbetat som mjukvaruutvecklare under de flesta av två decennier. Han brinner för spel, arbetar som chefredaktör på Switch Player Magazine och är fördjupad i alla aspekter av onlinepublicering och webbutveckling.

Mer från Bobby Jack

Prenumerera på vårt nyhetsbrev

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

Klicka här för att prenumerera