TDDE10 Objektorienterad programmering i Java
Liten guide för att komma igång med Git
På den här sidan samlar vi ihop lite tips för att komma igång med versionshanteringssystemet git. Inget av det som tas upp här examineras, men det kan underlätta och snabba upp arbetet.Skapa git-projekt
För att skapa ett nytt projekt i git kan du följa följande guide:
I din browser navigerar du till
https://gitlab.liu.se. Det
finns andra tjänster som tillhandahåller git-tjänster, men vi
rekommenderar att ni använder universitetets.
Logga in
med LiU-id som vanligt.
Välj new project.
Välj här
förslagsvis blank project om du inte har ett
existerande gitprojekt du vill importera. Du kan lägga
till filer i ditt blanka projekt, importera projekt gäller
alltså bara er som jobbat med git tidigare.
Du får upp denna ruta. Fyll i ett namn på projektet. Se till att
projektet är privat, och tryck på create project.
Lägg till medlemmar
Ofta när man har ett gitprojekt vill man lägga till andra
medlemmar. I ert projekt vill ni förmodligen bjuda in er partner
och vi vill dessutom att ni lägger till er
handledare/assistent. Logga in
på https://gitlab.liu.se. Klicka
på ditt projekt.
I menyn till vänster håller du musen över
"Manage" så får du en rullgardinsmeny som kommer fram. Där väljer
du "Members".
Du bör ha fått upp denna skärm. Välj "Invite Members".
Fyll i LiU-ID
eller sök efter namn på den du vill bjuda in. Välj sedan roll
(developer eller maintainer om vederbörande ska kunna titta på och
ändra i projektet), tryck sedan på invite.
Lägg till SSH-nyckel (görs en gång per dator)
Om du vill slippa lösenord kan du välja att identifiera via SSH-nyckel. Denna nyckel är unik för varje dator du använder. Din inloggning på IDA (vare sig du sitter i SU-sal, via SSH eller ThinLinc) räknas som en och samma dator, så du behöver bara göra detta en gång för samtliga av dessa system.
Gå
till https://gitlab.liu.se/help/user/ssh#generate-an-ssh-key-pair.
Följ instruktionerna för RSA under rubriken "Generate an SSH key
pair". Kortfattat: copy paste det som står i rutan (rödmarkerat)
till din terminal:
ssh-keygen -t rsa -b 2048 -C "
Ersätt
"comment" med exmpelvis "min liuinloggning" eller "min hemdator",
något som hjälper dig identifiera nyckeln. Tryck sedan
enter. Tryck enter på alla frågor du får. Du behöver inte mata in
något.
När det är klart kör du:
cat ~/.ssh/id_rsa.pub
Du bör få ut något i stil med:
ssh-rsa OHOSdjajoidsjmSAHDodskqod (en lång rad bokstäver och
siffror) avslutat med den kommentar du gav ovan (ex. min
hemdator).
Kopiera hela denna utskrift (från och med ssh-rsa till
och med din kommentar).
Logga in
på https://gitlab.liu.se. Där
går in på din profil (den lilla rosa knappen), och
preferences.
Tryck på "SSH keys" i menyn till vänster.
Klistra in nyckeln du nyss kopierade i den stora rutan. Du kan ta
bort expirationsdatum om du vill. Tryck sedan på "Add
key".
Klart! Du har nu lagt till din privata nyckel
från datorn du använder och kan använda git utan att ange lösenord
varje gång.
Klona (hämta) projekt
När du ska jobba med ditt projekt för första gången behöver du
klona det till din dator. Ställ dig i en lämplig mapp. Om du
exempelvis vill ha projektet tillsammans med dina andra projekt i
kursen går du till din workspace mapp via terminalen.
Ex.
cd TDDE10
Öppna browsern och logga in
på https://gitlab.liu.se. Klicka
på ditt projekt.
Klicka på knappen "Clone Project", och kopiera SSH-varianten om du
har gjort en SSH-nyckel, välj HTTPS om du föredrar att identifiera
dig med lösenord varje gång du gör push/pull/clone.
Gå tillbaka till din terminal. Där kör du:
git clone länkenDuNyssKopierade
Du bör få en respons som liknar den nedan.
Ex:
Om vi kör ls
i terminalen kan vi se att vi har hämtat
projektet:
Du kan nu jobba med dem som du är van vid.
Lägg till mitt klonade projekt i Eclipse
Vi har nu skapat och klonat ett projekt. Vi vill så klart lägga
till det i Eclipse så att vi kan börja jobba. Högerklicka under
dina existerande projekt i Eclipse och välj: "New" -> "Java
Project".
På denna skärm kallar vi vårt projekt exakt samma sak som
mappen vi just fick hem från git. Om det redan fanns filer i
projektet kommer de att dyka upp här också. Klart att börja jobba!
Git-kommandon
Git är betydligt mer komplext än vad vi går igenom inom ramarna
för denna kurs. Om ni delar upp arbetet på lämpligt vis
(ex. Student1 jobbar i paket1, Student2 jobbar i paket2, eller ni
delar upp specifikt vem som jobbar i vilka filer) bör ni klara er
utmärkt med add, commit, push, och pull.
För samtliga kommandon måste vi gå till vår
projektmapp i terminalen.
Ex:
cd TDDE10/spelprojekt
Add
När vi har gjort en ny fil, eller ändrat i en fil, vill vi
lägga till den som ny version. Vi gör detta med git
add.
Ex:
git add MinKlass.java
Vi kan lägga till godtyckligt många filer:
git add MinKlass.java MinAndraKlass.java
Main.java
Vi kan även köra flera git add i rad om vi
vill. När vi har lagt till allt vi vill ha i vår nya version måste
vi göra en commit.
Commit
Vi har gjort git add på en eller flera filer där vi
antingen har skapat nya klasser eller gjort ändringar. Nu vill
vi skapa en ögonblicksbild över det vi har tagit med. Det gör
vi med git commit.
Ex:
git commit -m "Beskrivande meddelande"
Här
ger vi ett meddelande som beskriver det arbete vi har
gjort. Vi kommer att få en respons i terminalen med vilka
filer som ändrats och hur många rader som lagts till
respektive tagits bort.
Denna
ögonblicksbild vill vi skicka till gitservern. Det gör vi med git
push.
Push
Vi har gjort en/flera commits (ögonblicksbilder) och vill
skicka dessa till servern så att både vi själva och eventuella
medarbetare/kompisar/... kan ta del arbetet vi har
gjort. Detta gör vi genom att skriva git push i
terminalen:
git push
Responsen vi får indikerar att
allt har gått bra och beskriver hur många filer osv som
påverkas.
Ex:
Om vi inte får en OK respons likt i bilden ovan finns det
sannolikt något på servern som vi inte har hämtat hem
ännu. Det måste vi ta hem först, och det kan vi göra
med git pull.
Pull
Vi har gjort ändringar i projektet på annan dator, eller
projektkompisen har gjort ändringar som vi vill hämta. Under
förutsättning att du inte har gjort ändringar i samma filer
som din kompis ska det gå utmärkt att köra kommandot git pull i
terminalen:
git pull
Allt bör ha gått
utmärkt, under förutsättning att arbetet har varit uppdelat på
ett bra vis. Har ni däremot jobbat i samma filer kommer det
att kunna uppstå en merge-konflikt
Merge-konflikt
Eftersom vi hade glömt dela upp arbetet har vi jobbat och modifierat samma filer och en merge-konflikt har uppstått. Det finns några olika sätt att lösa detta. Vissa klarar git att lösa själv, andra behöver handpåläggning. Vi kan antingen lösa det enligt föreläsningsslidesen genom att ta bort konfliktmarkörer osv, eller döpa om de berörda filerna temporärt och sammanföra ändringarna manuellt. Det smidigaste är att undvika att skapa merge-konflikter genom att dela upp arbetet.
Sidansvarig: Magnus Nielsen
Senast uppdaterad: 2024-01-09