Om du utvecklar någon typ av mjukvara eller webbapplikation så är Git en nästan oumbärlig del av ditt arbetsflöde.

Det distribuerade versionskontrollsystemet är nästan det enda sättet att samordna kodningsarbetet i teamet. För det ändamålet har Git exempelvis en enkel uppsättning av kommandon som du snabbt kan lära dig. Det är dock inte alltid så intuitivt.

Detta gäller särskilt i situationer som att utföra en git rename på en gren.

Lagarbete kräver kommunikation, och dina grennamn – med tanke på att de är offentliga – bör erbjuda gott om beskrivning och tydlighet. Detta kan stöta sig med det vanliga behovet av att arbeta snabbt. Den snabba namnkonvention som du ger en gren för att kunna börja arbeta med koden kan därför behöva justeras för att bättre passa ditt projekt.

I det här inlägget så visar vi hur du utför en git rename på en gren. Först så ska vi dock prata om vad en gren är i Git och några av situationerna där du bör byta namn på en gren.

Vad är en Git-gren (och varför ska man byta namn på en)?

Git’s versionskontroll jobbar med grenar. Du har ett huvudarkiv som innehåller alla olika grenar för projektet, inklusive den primära (mer om detta senare).

En del av fördelen med att använda Git är att du kan duplicera den primära grenen, arbeta med kod och sedan slå ihop dessa ändringar senare, när du har slutfört allting.

Även Kinsta har möjlighet att använda Git för att komma åt din webbplats med hjälp av Secure Shell (SSH). Du kan dessutom ansluta till ditt GitHub-arkiv och distribuera din applikation med bara några få klick via instrumentpanelen i MyKinsta.

Auktorisera Kinsta på GitHub.
Auktorisera Kinsta på GitHub.

Att namnge grenen är dock ett steg som många utvecklare rusar igenom. Det finns en mängd olika anledningar till att du bör ändra namnet på en gren i Git:

  • Tydlighet: Du vill försäkra dig om att grenen ger en fullständig klarhet om vilka kodändringar som den omfattar och vad de gör. Detta kommer exempelvis att vara viktigt vid sammanslagningar eller till och med vid radering av grenar. Det går dessvärre inte att komma tillbaka efter att ha raderat fel gren eller glömt bort dess namn.
  • Konsistens: Din gren kanske inte följer de namnkonventioner som ditt team har satt upp. Som ett resultat så måste du revidera grennamnen vid ett senare tillfälle.
  • Moderna standarder: Om projektet är ett äldre projekt, eller om det är en långsiktig angelägenhet inom ditt team, så matchar grenarna kanske inte dagens konventioner för kulturell känslighet. Det finns exempelvis en populär rörelse för att ändra den primära grenen från ”master” till ”main” eller ”trunk” för att undvika referenser till slaveriinstitutionen.

På grund av dessa skäl (och andra) så måste du ofta utföra en git rename på en gren.

Nästa steg är att gå igenom hur du gör detta.

Hur man byter namn på en Git-gren

När det gäller att köra en git rename på en gren så måste du ta hänsyn till både lokala och fjärrbaserade (t.ex. GitHub) arkiv. Den goda nyheten är att den process som vi kommer att beskriva går igenom alla permutationer som du behöver för att lyckas.

Först så ska vi ta upp hur man hittar och ändrar namnet på en gren. Detta kommer exempelvis att inkludera en titt på de kommandoflaggor som kommer att hjälpa dig. Vi ska sedan titta på hur du ser till att ditt fjärr-arkiv matchar det lokala.

1. Använd kommandona git checkout och git branch

Din första uppgift är att hitta den gren som du vill byta namn på. Du kan använda följande kommando:

git checkout current-name

När vi använder current-name så ska du lägga till namnet på din gren. Om du inte känner till namnet, eller om du vill se hela listan över grenar (kanske för att kontrollera konventioner i hela projektet), så kan du använda git branch --list eller git branch -a.

Navigera till och lista grenarna i ett Git-arkiv.
Navigera till och lista grenarna i ett Git-arkiv.

När du väl är i rätt gren så kan du byta namn på den med hjälp av följande:

git branch -m new-name

Du bör se till att du använder ett specifikt grennamn här, snarare än vår platshållare. Flaggan -m betyder ”flytta” och är den del av kommandot som gör att namnbytet sker.

Att byta namn på en gren i ett Git-arkiv.
Att byta namn på en gren i ett Git-arkiv.

Om det nya grennamnet som du väljer redan finns så kan du tvinga fram den ändring som du anger med -M i stället. Detta är dessutom den taktik som du använder på Windows-maskiner om ditt grennamn innehåller en blandning av versaler och gemener.

När du har bekräftat ändringen så använder du git status för att se om det nya namnet gäller för din gren:

Kontrollera att en Git-omdöpning har skett med git status.
Kontrollera att en Git-omdöpning har skett med git status.

Du behöver dock inte använda git checkout alls om du inte vill. Låt oss snabbt titta på detta mer i detalj.

1(a). Att byta namn på en Git-gren utan att använda git checkout

Den här metoden fungerar endast om du befinner dig i huvudgrenen av ditt arkiv. Om inte så måste du alltid använda en git checkout; för att komma till din huvudgren.

Oavsett detta så kan du se din nuvarande plats i arkivet med hjälp av git status. Kommandot för att ändra grennamnet liknar den senaste metoden, men den här gången så kombinerar du både det nuvarande och det nya grennamnet:

git branch -m current-name new-name

När du har kört kommandot så kan du kontrollera listan över grenar som bekräftelse.

2. Flytta den omdöpta grenen till fjärr-arkivet

Den här metoden fungerar för ett lokalt arkiv, men det finns mer som du behöver göra när det gäller fjärr-arkiv. Du kommer att behöva hantera fjärr-arkiv i ditt projekt väldigt ofta, och det här steget är något som du inte bör glömma.

Om du hoppar över den här delen av processen så kommer den nya grenen fortfarande att referera till sitt gamla grennamn. Tricket är att ta bort den gamla grenen från fjärr-arkivet och sedan flytta den nya grenen uppströms.

Det första steget är att byta namn på den lokala grenen. Därefter så kan du köra ett par kommandon i tur och ordning.

Först så tar du bort den gamla grenen:

git push origin --delete old-branch

…sedan flyttar du den nya:

git push origin -u new-branch

Du kan dessutom skriva över namnet på uppströmsgrenen på följande sätt:

git push origin: old-branch new-branch
git push origin -u new-branch

Kör återigen git status för att se om den nya grenen pekar mot sin egen referens, snarare än mot den äldre. Om referensen pekar mot den gamla grenen så kan du använda git branch --unset-upstream för att rätta till detta.

Sammanfattning

Git är en intuitiv och kraftfull metod för att tillämpa en distribuerad versionskontroll på koden i ditt projekt.

En av dess mer flexibla fördelar är möjligheten att använda den både för lokala och fjärrbaserade arkiv. Vissa enkla uppgifter (t.ex. att byta namn på grenar) kräver dock mer eftertanke än andra.

I den här artikeln så har vi diskuterat hur man nyttjar git rename på en gren för både lokala arkiv och fjärr-arkiv. Även om kommandot i sig är enkelt så måste du dock tillämpa några olika kommandon för att se till att de lokala arkiven och fjärr-arkiven matchar varandra. Annars så kan alla sammanslagningar som du utför ha fel eller felaktiga referenser till gamla eller obefintliga arkiv.

Om du behöver ett säkert och användarvänligt hosting-alternativ för din Git-baserade applikation eller databas, så behöver du inte leta längre: Kinsta’s lösningar för applikationshosting och databashosting har byggts med tanke på alla typer och storlekar av projekt. Detta inkluderar exempelvis fullstack-appar, och de kan distribueras via GitHub på bara några minuter.

Ditt projekt kommer att nå nya hastighetsnivåer med C2-maskiner på Googles Premiumnivånätverk. Vår Cloudflare-integrering skyddar dig dessutom från nästan alla tänkbara säkerhetsproblem. Du kan dessutom ha så många samtidiga byggen och användare som du vill.

Kolla in Kinsta’s planer för applikationshosting för att hitta en som passar dig och ditt projekt, eller prova kostnadsfritt. Om du har några frågor så finns Kinsta’s team av erfarna utvecklare där för att hjälpa dig dygnet runt.