Acebit expanderar
Acebit expanderar – automationsess från Dalarna öppnar i Stockholm
I den tidigare delen introducerade jag versionshantering, hur vi kommer igång och vilka fördelar som finns att ta del av. I denna del ska vi avsluta introduktionskursen med att gå igenom hur man arbetar med brancher, sammanslagningar och differenser.
För demonstration kommer jag fortsatt att arbeta med samma förvar som tidigare.
När jag skrev fördelarna med versionshantering i den första delen påpekade jag bland annat att vi kan arbeta isolerat med vår kod. Vi kan göra detta genom att hämta hem en lokal version av fjärrförvaret, men hur arbetar vi metodiskt med förändringar? Svaret är att vi bryter ut dessa i egna brancher.
Vi kan se en branch som en ögonblicksbild av vår kod. Med denna ögonblicksbild skapar vi en ny gren (precis vad engelskans “branch” betyder) på vårt Git-träd för att kapsla in vår planerade förändring.
För att se vilka brancher som redan existerar kan vi använda kommandot “git branch”.
rasmus@Rasmuss-MBP introduktion-till-git % git branch
* main
Låt säga att jag nu vill göra en förändring i filen “README.md”. Jag börjar med att skapa en ny branch som heter “acebit”, vi använder samma kommando som för att lista brancher men lägger nu till den nya branchens namn på slutet.
rasmus@Rasmuss-MBP introduktion-till-git % git branch acebit
Listar vi nu om kan vi se att vår nya branch har skapats
rasmus@Rasmuss-MBP introduktion-till-git % git branch
acebit
* main
Vi befinner oss dock fortfarande i “main” branchen. För att förflytta oss behöver vi använda “git checkout branch-name”.
rasmus@Rasmuss-MBP introduktion-till-git % git checkout acebit
Switched to branch 'acebit'
Tips!!
Om du vet att du ska börja arbeta i branchen som du tänker skapa, ta nytta av “git checkout” kommandots fulla potential. Genom att specificera “-b branch-name” efter kommandot kan vi skapa vår nya branch och flytta oss in i denna med en enda rads input.
rasmus@Rasmuss-MBP introduktion-till-git % git checkout -b acebit
Switched to a new branch 'acebit'
Har du många brancher och vill veta vilken du befinner dig i kan du enkelt ta reda på detta med “git branch –show-current”. (OBS, gäller fr.o.m Git 2.22 och framåt)
rasmus@Rasmuss-MBP introduktion-till-git % git branch --show-current
acebit
Nu har jag implementerat den planerade förändringen i filen “README.md”, jag är nöjd och har därmed utfört en commit i den nya branchen. Med “git diff” kan vi jämföra våra brancher för att se vad som skiljer de åt och även säkerställa att ingen oväntad förändring har kommit med.
rasmus@Rasmuss-MBP introduktion-till-git % git diff main..acebit
diff --git a/README.md b/README.md
index 24a1e2c..1cab9f5 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,5 @@
# Introduktion till Git
-Ett förvar för att göra en demo på Git
\ No newline at end of file
+Ett förvar för att göra en demo på Git
+
+## Del 2
+Rasmus was here
\ No newline at end of file
diff --git a/README.md b/README.md
” visar oss vilka filer som har jämförts.24a1e2c
och 1cab9f5
representerar hasharna för filerna som differenskollats. Det sista numret, 100644
specificerar filrättigheterna.+
markerar innehåll från eller relaterat till b/README.md
.I den första jämförelsen tog vi alla förändringar mellan de två brancherna. För att vara mer specifika kan vi lägga till vilken fil som ska jämföras:
rasmus@Rasmuss-MBP introduktion-till-git % git diff main..acebit README.md
diff --git a/README.md b/README.md
index 24a1e2c..1cab9f5 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,5 @@
# Introduktion till Git
-Ett förvar för att göra en demo på Git
\ No newline at end of file
+Ett förvar för att göra en demo på Git
+
+## Del 2
+Rasmus was here
\ No newline at end of file
Eftersom att vi endast har gjort förändringar i filen “README.md”, så är det i detta fall ingen skillnad från den icke filspecificerade differenskollen vi utförde.
Om vi kollar noga i differensen kan vi se att det inte tillkommer något commit meddelande. För att få ut detta kan vi använda oss av “git log”.
rasmus@Rasmuss-MBP introduktion-till-git % git log
commit e689a554442d93dc219d843a0f99744717ef9d99 (HEAD -> acebit)
Author: Rasmus Karlsson <rasmus.karlsson@acebit.se>
Date: Thu Oct 6 20:37:24 2022 +0200
new feature
commit 2322c1c70cf0136ca114042bfee2e1dd98394c58 (origin/main, origin/HEAD, main)
Author: Rasmus Karlsson <rasmus.karlsson@acebit.se>
Date: Mon Jul 4 21:15:27 2022 +0200
lagt till README.md
Här ser vi att jag får med alla commit meddelanden som har utförts och syns historiskt i den branch jag befinner mig (acebit). För att jämföra vad som skiljer 2 brancher åt kan jag specificera “branch1..branch2”, likt hur vi gjorde för att få fildifferenser.
rasmus@Rasmuss-MBP introduktion-till-git % git log main..acebit
commit e689a554442d93dc219d843a0f99744717ef9d99 (HEAD -> acebit)
Author: Rasmus Karlsson <rasmus.karlsson@acebit.se>
Date: Thu Oct 6 20:37:24 2022 +0200
new feature
Nu när vi har vår förändring committad och färdig i branchen “acebit” är det dags att introducera den i huvudbranchen. Detta sker genom en sammanslagning.
För att slå samman dessa brancher börjar vi med att checka ut till den branch som ska kvarstå efter sammanslagningen, i detta fall är det “main” branchen.
rasmus@Rasmuss-MBP introduktion-till-git % git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
Nu kan vi utfärda sammanslagningen med kommandot “git merge”, följt av namnet på den branch vars förändringar ska slås samman med den jag befinner mig i.
rasmus@Rasmuss-MBP introduktion-till-git % git merge acebit
Updating 2322c1c..e689a55
Fast-forward
README.md | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
Efter detta kan vi se att en “fast-forward” sammanslagning har skett. Det betyder att min commit i branchen “acebit” som låg ett steg före huvudbranchen nu har lagts längst fram i huvudbranchen.
Om vi uppdaterar den tidigare bilden på commit-trädet ser det nu ut enligt följande bild.
När vi är färdiga med vår branch som skapades specifikt för denna förändring kan vi städa upp efter oss genom att ta bort denna. Ha det som en vana att ta bort brancher som inte längre arbetas på, det bildas väldigt snabbt en röra om icke färdigställda eller utdaterade brancher existerar.
För att ta bort en branch använder vi “git branch -d branch-name”
rasmus@Rasmuss-MBP introduktion-till-git % git branch -d acebit
Deleted branch acebit (was e689a55).
I denna avslutande del har vi gått igenom hur vi arbetar mer metodiskt med versionshantering genom att använda brancher, differenskollar och grundläggande sammanslagningar.
Behöver ni hjälp eller vill veta mer? Vi göra rena utbildningsuppdrag, standardiserade eller skräddarsydda för er. Klicka här för att kontaka oss!
Acebit expanderar – automationsess från Dalarna öppnar i Stockholm
Acebit rekryterar Isak Ljunggren – Acebit Trainee från Högskolan Dalarna
Även Falu-Kuriren har intresserat sig för Acebit och besökt oss i Falun!
Emanuel Lipschütz ny styrelseordförande i Acebit
Nyligen stötte jag på ett scenario som innebar att ca 200 Meraki-enheter behövde byta inställning från DHCP till statisk IP-adressering. Istället för att gör...
I mina tidigare inlägg om virtuella port-channels kikade vi på vad det är och vilka delar de utgör. Det här avsnittet kommer beröra hur en grundkonfiguration...
Bakgrund Idag tänkt jag skriva några rader om att skriva concurrent kod, eller “samtidighet” om vi prompt ska översätta det till svenska. För att enklare för...
Scrapli Automation - trunk ports