TDDE71 Programmering och datastrukturer
Kom igång med git
Det är flera grupper som börjat pilla med git och kört fast på olika saker som behöver göras för att få alla system att samarbeta.
Här kommer en ytterst kortfattad guide till saker som behöver genomföras för att git ska fungera bra.
Öppna en terminal för att kunna köra kommandon.
Kommandon är skrivna i kursiv stil nedan.
Saker att göra på varje unikt hemkonto:
Skapa ssh-nyckel (https://gitlab.liu.se/help/user/ssh):
ssh-keygen -t ed25519 -C "gitlab"
Tryck enter som svar på varje fråga.
Visa publik nyckel:
cat ~/.ssh/id_ed25519.pub
Kopiera raden som skrivs ut.
Klistra in publiknyckel på gitlab: (https://gitlab.liu.se/-/user_settings/ssh_keys, "add new key")
Berätta för git vem ni är:
emacs ~/.gitconfig &
Min gitconfig ser ut så här:
[user]
name = Klas Arvidsson
email = klas.arvidsson@liu.se
[push]
default = simple
Se till att det står rätt Förnamn Efternamn och rätt Student-epost.
Raderna i filen ska inte inledas med # (det är kommentarsrader).
OBS! Se till att det står SAMMA personuppgifter i andra datorer ni använder.
(Loggar ni in på ert LiU-konto via Thinlinc eller RDP eller i sal kommer ni alltid in på ert eget hemkonto där uppgifterna är sparade, men jobbar ni på en egen installation av Linux eller i WSL måste ni skapa nyckel och göra konfig där också.)
Saker att göra en gång:
Logga in på gitlab och skapa ett privat nytt repository, t.ex.
TDDE71_LAB2
Gå in på projektet, i menyn Manage -> Members, lägg till din labkamrat som medlem. Din labkamrat behöver har rollen
Developer, Maintainer eller Owner. (Som Guest eller Reporter får man inte pusha.)
https://gitlab.liu.se/help/user/permissions
Koppla en arbetsmapp med filer till gitlab:
Ta reda på URL till ditt gitlab repository.
Gå in på repositoryts förstasida på gitab.
Leta efter en blå knapp "Code".
Kopiera länken "clone with SSH", den URL som börjar med "git@gitlab.liu.se".
I en terminal, ställ dig i en ny tom mapp och kör:
git status
Om git status säger "fatal: not a git repository",
bra, då blir det inga problem göra ett repository här.
Om git status säger något annat, be om hjälp.
Hämta ditt nya repository på gitlab (klistra in URL):
git clone URL
ls
Nu ska du ha en mapp med samma namn som ditt repository på gitlab, t.ex.
TDDE71_LAB2
Gå in i den mappen och kör:
git status
Git ska nu säga "On branch main..."
Nu är du igång och kan använda alla git-kommandon i terminalen!
Har du redan filer i någon annan mapp som du vill hantera med git, kopiera in dem i arbetsmappen och gör:
git add *.cc *.h
git status
git commit -m "Meddelande som beskriver status på filerna"
git push
Den typiska sekvensen kommandon vid arbete med git är:
Innan du börjar för dagen eller när du vill ta del av det en kollega gjort:
git pull
Varje gång något nytt funkar eller när du vill dela det du gjort med en kollega:
git add lista på filer du ändrat
git status
git commit -m "Kort beskrivning av vad du gjort"
git status
När du slutar för dagen eller när du vill dela det du gjort med en kollega:
git push
När något strular:
Läs vad git skriver som förslag.
Kontrollera i dokumentation vad det som git föreslår faktiskt gör.
Om dokumentationen eller git nämner risk för dataförlust: ta backup av ert arbete innan ni testar något riskfyllt eller be om hjälp.
Innan du gör något riskfyllt (generellt):
Fundera igenom hur du ska kunna o-göra det du tänker göra (kontrollera dokumentationen). Om du inte vet hur du återställer, ta reda på det först. Om det inte går att o-göra (t.ex. radering av filer), var extremt försiktig.
Exempel 1: Finns de filer jag vill ta bort bland viktigt arbete kan jag först flytta undan det som ska tas bort till en ny tom skräp-mapp. Sedan kontrollerar jag att enbart rätt saker flyttades till skräp-mappen och om allt blev rätt kan jag ta
bort hela skräp-mappen.
Exempel 2: När jag strulat till min git arbetsmapp (ja, det händer) och måste köra ovanliga eller obekanta kommandon för att fixa till den tar jag först en djup kopia av hela arbetsmappen och provar mig fram i
kopian. Då finns originalet kvar orört om jag inte reder ut det direkt (det händer också!). Då kan jag alltid göra en ny kopia och prova igen tills jag lärt mig lösa problemet.
Exempel 3: Om jag strulat till min git-arbetsmapp och verkligen inte har tid reda ut rätt git-kommandon just nu
byter jag namn på arbetsmappen och lämnar till senare. Sedan gör jag en ny klon från senaste versionen på gitlab och kopierar in det jag behöver från den omdöpta mappen så jag kan fortsätta arbeta. Det är inte en elegant strategi, men ibland användbar.
Några jokes on git som ni antagligen tids nog kommer att uppskatta:
(Det finns även
https://www.explainxkcd.com/ när jag behöver lite mer bakgrund för att helt förstå seriestrippar på xkcd (det händer!).)
Där finns även:
Utmärkt när det behövs en kort paus.
Mvh / Klas
Sidansvarig: Eric Ekström
Senast uppdaterad: 2025-10-03