Acebit expanderar
Acebit expanderar – automationsess från Dalarna öppnar i Stockholm
Versionshantering är ett sätt att hantera förändring av filer och spåra historik över tid. Ett versionshanteringssystem, som exempelvis Git, ansvarar för filerna i ett förvar. I ett Git-förvar lagras originalversionen av filerna som ett master set. Förvaret kan lagras lokalt eller på en server (exempelvis GitHub, Gitlab eller egenhostad lösning).
Versionshantering är en styrka för dig, ditt team och/eller företaget. Det kommer med fördelar som:
Om vi jobbar med versionshantering kan vi också arbeta effektivare med metoder som “continuous delivery/continuous deployment“ (CI/CD) och/eller processer som Infrastruktur som Kod (IaC).
Git är, som tidigare nämnt, ett versionshanteringssystem och även det mest använda av sitt slag. Det utvecklades 2005 av Linus Torvalds (skaparen av operativsystemskärnan Linux).
Git använder SHA-1 hashar för att referera till “commits“ och integritetskontroll av filobjekt; med dessa hashar bygger Git en trädliknande struktur av våra “commits“ för att enkelt lagra och hämta data. Sedan Git 2.29 finns det stöd för SHA-256, läs mer här.
Diagrammet visar flöden med Git. Källa: pushpankq @ GitHub
För dig som inte har Git installerat, klicka här; välj rätt operativsystem och installera enligt instruktioner.
Jag kommer att använda Gitlab för att lagra mitt fjärrförvar och använder även SSH som transport alternativ.
Vi börjar med att klicka på “New Project“ knappen för att skapa förvaret.
Därefter får vi några alternativ för att skapa vårt nya projekt. Jag väljer “Create blank project“ för att börja tomt.
Jag har valt att sätta ett namn på mitt projekt, en beskrivning, att förvaret ska vara publikt och även bockat ur “README“ alternativet; vi vill själva initiera ett lokalt förvar för att pusha filer senare.
Nu är det dags att konfigurera några globala Git variabler lokalt och vi vänder oss därför till ett terminalfönster; personligen använder jag Ubuntu som operativsystem.
git config --global user.name "Ditt Namn"
git config --global user.email "ditt.namn@mejl.se"
Detta är samma parametrar som Gitlab påminner oss om i det tomma projektet på Gitlab.
Eftersom att jag inte hade några lokala filer som skulle upp i fjärrförvaret har jag valt att snabbt skapa en mapp med en “README.md“ fil.
I “README.md“ har jag skrivit lite enkel text i markdown.
Därefter initierar jag ett Git-förvar i den lokala mappen och definierar branchen som “main“ eftersom att detta är Gitlabs standard. Sedan lägger vi till fjärrförvaret som ursprung.
git init --initial-branch=main
git remote add origin git@gitlab.com:"profil/ditt-projekt.git"
För att ändra på filer i vårt lokala förvar behöver förändringar i arbetsförvaret gå igenom “staging“ området innan det kan bli en “commit“. För att lägga till filer använder vi “git add“:
git add .
# eller
git add README.md
I detta fall hade båda specifikationerna fungerat; punkten definierar att alla filer i den aktuella mappen ska stageas.
Om du vill ta bort en fil från “staging“ eller arbetsförvaret kan vi använda oss av “git rm“ (s.k. ‘remove’)
git rm <file>
Nu när “README.md“ ligger i staging området är vi redo för att göra en “commit“ till det lokala förvaret.
git commit -m "lagt till README.md"
Parametern “-m“ gör att vi kan lägga till en kommentar (så kallad “commit log“) direkt i vår “commit“. Om vi inte lägger till kommentaren här kommer vår standard textredigerare att öppnas och Git ber dig att ange “commit log“ meddelandet. Tänk på att en “commit“ kommentar ska vara koncis.
När vi har registrerat filen i vårt lokala Git-förvar kan vi driva vidare förändringen till fjärrförvaret. Detta gör vi med “push“ kommandot.
Jag behövde även ställa in upstreamen
git push
Om vi nu kollar i fjärrförvaret kan vi se min “commit“ och filen som jag lagt till.
I denna del har vi gått igenom vad versionshantering är, hur vi skapar ett fjärrförvar hos Gitlab och hur vi jobbar med Git; initierar ett lokalt förvar kopplat till vårt fjärrförvar och driver vidare våra lokala förändringar till fjärrförvaret. Klicka här för att komma till fjärrförvaret som jag använt i detta inlägg. I nästa del går vi igenom brancher, sammanslagningar och differenser.
Behöver ni hjälp eller vill veta mer om versionshantering, CI/CD eller infrastruktur som kod? Kontakta oss så visar vi er vägen till en modern arbetsstil!
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