1 Vad är Versionshantering? 2 Git. 2.1 GitHub

Relevanta dokument
Versionshantering med Git. Henrik Henriksson 17 april 2018

Börja med git och GitHub - Windows

Introduktion till git

GitHub for Windows och GitShell

Introduktion till Git

Versionshantering. Problem som uppstår i större (samt även mindre) projekt:

CVS-Introduktion. CyberRymden Introduktion till CVS,17 november (27) Marcus Rejås

Versionshantering med Git

Kort-kort om utdelade användarkonton och datormiljön på NADA

DRAFT. CVS kurs laboration 1 Checka in, ut och uppdatera. Marcus Rejås. 17 november 2002

Övning GIT Andreas Wieden

Skoladmin kom igång! Innehåll

Kort-kort om utdelade användarkonton och datormiljön på NADA

Laboration 2 Datorverktyg vid LiU

INNEHÅLLS FÖRTECKNING

Välkommen till Dropbox!

Använda Office 365 på en iphone eller en ipad

FIRSTCLASS. Innehåll:

TDP005. Föreläsning 2. Filip Strömbäck

Arg-administratörens guide till Umbraco v 1.2.1

Handledning för installation och komma igång med Joomla

DATORINTRODUKTION 2010 LABORATION 1

Parallella jobb ctrl-z emacs & more README ctrl-z jobs. %<jobnr>

Installation/Flytt av Rebus

Användarmanual för Pagero Kryptering

Datorintro för elektro på Solaris

Välkommen som användare av medietekniks och informatiks publika studentserver

Lab1 inginfo07. Detta dokument innehåller övningar för introduktion till Media-programmets datorsystem (Mac OS X).

Arbetshäfte Office 365 en första introduktion

Zimplit CMS Manual. Introduktion. Generell Information

Skriv före adressen och lämna bort www enligt modellen:

Välkommen till Dropbox!

Guide för installation av programvara NPD SV

Tfn Telephone Kontr Checked. Revisionshistoria Revision history Rev Namn Name Datum Date Ändring Change

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: Mottagare: Visi Web kund

Manual Attestering av fakturor på webb

Innehåll Information om hemkatalog och lagring av filer... 2 PC... 3 DAFGU-/GDA-dator, Windows

Beställning av certifikat för anslutning till BankID (RP certificate) Version

Unix-miljöer i större sammanhang

Fördjupningsarbete/laboration om Git

Subversion. Laboration. Höstterminen 2008 r81. Ronny Kuylenstierna

Frontermanual för Rektorsprogrammet

E-tentavakt - Invigilator

Introduktion till Git Anton Ekberg Version 2

Att ladda ner från legimus.se

Installera din WordPress med 9 enkla steg

Lathund för Svenskt Näringsliv

Manual för Typo3 version 4.2

LATHUND FIRSTCLASS 8.0. RXK Läromedel Tel: , Fax: e-post:

Google Apps For Education

Viktigt! Vill du ha möjligheten att återställa originalbilarna utan hemladdning läs nedan om återställning innan du börjar med installationen!

Lathund för Novell Filr

Användarhantering Windows 7 I denna laboration kommer vi att skapa nya användare och grupper och titta på hur man hantera dessa.

Installationsanvisningar för abc Datorövningar

ANVÄNDARMANUAL, INTERAXO

Innehåll Information om hemkatalog och lagring av filer... 2 PC... 2 GDA-dator, Windows

Uppdateringsguide v4 SR-3

Steg 5 Webbsidor One.com och OpenOffice Writer Mac OS X

Instruktioner för uppdatering från Ethiris 5.x till 6.0

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

Labora&on 1 Introduk&on &ll utvecklingsmiljön övningar/uppgi<er

SCI-A0000: Introduktion till Linux, hösten 2016

Telia Centrex IP Administratörswebb. Handbok

Manuell installation av SQL Server 2008 R2 Express för SSF Timing

UNIX. 2D1339 Programkonstruktion Hösten 2001 Datorintroduktion Laboration 1. Mål. Vad laborationen går ut på. Redovisning

Inställning av Bluerange Hosted Exchange 2007

Manual - Storegate Team

Ondemand streaming via Amazon S3 och CloudFront

Anslutning till unixsystem från windowslabben

Så här byter du från Unifaun WebOrder (UWO) till Unifaun OnlineConnect (UOCT)

Plugboard Guide till WooCommerce. Stöder - WooCommerce 3.x

FC-kurs Röbäcks skolområde femmor och sexor

Beställning av Förlitandepart-certifikat Version

Redaktörens Lathund för Glokala. Så här redigerar du en redan befintlig hemsida. Så här skapar du en länk till en extern hemsida

Manual - Storegate Team

ANVÄNDARMANUAL FÖR WORDPRESS

Arbetsuppgift 1: På virtuell maskin med Ubuntuserver, skapa katalog och skapa Dockerfile. Skapa ny katalog i din hemmakatalog, med namnet webbserver.

SLU Säkerhets instruktioner avseende kryptering av filer

Föreläsning 3. Programmering, C och programmeringsmiljö

Outlook 2010/2013 Windows. Öppna funktionsbrevlådan 1. I Outlook, klicka på Account Settings under fliken File

ARX på Windows Vista, Windows 7 eller Windows 2008 server

Hur du gör ditt Gilles hemsida - en liten hjälp på vägen

Årsskiftesrutiner i HogiaLön Plus SQL

FLEX Personalsystem. Uppdateringsanvisning

Qlik Sense Cloud. Qlik Sense Copyright QlikTech International AB. Alla rättigheter förbehållna.

7 Mamut Client Manager

NYTT LIV I EN UTTJÄNT DATOR

Instruktioner. Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 3. Hem (SIDA 2)

Installation/första start av DEP-ansluten ios-enhet

Installation av datafil för lokal lagring av e-post i Microsoft Outlook 2016

1. Säkerhetskopiera den eller de byråer du har arbetat med via i Visma Klient.

FV-mejl. Förklaring:* AG= Arbetsgivare, ** AS=Arbetsställe

Kom igång med lånad ipad

Huvudmenyn (utseendet kan variera) Skriva ett nytt mail

Att hämta organisationers publikationsposter ur DiVA

1. Log on to the system using the user ide and password ide. 2. Copy the file /etc/ca-certificates.conf to the home directory of the user.

Storegate Pro Backup. Innehåll

INSTALLATION OCH KONFIGURATION AV PROGRAM PICBASIC PRO - MICRO CODE STUDIO PLUS - EPIC PLUS

Instruktion för användande av Citrix MetaFrame

Transkript:

1 Vad är Versionshantering? Versionshantering (eller Version Control) är ett samlingsnamn för program som ger en användare möjlighet att komma åt tidigare versioner av dokument och spåra ändringar som gjorts. Den här funktionaliteten kan vara användbar i flera sammanhang, men den är särskilt värdefull inom mjukvaruutveckling, och versionshantering är idag ett centralt verktyg som du med stor sannolikhet kommer att stöta på i arbetslivet. 2 Git Ett av de mest använda versionshanteringssystemen heter Git, och det är det ni kommer möta i den här uppgiften. Anledningen att vi valt Git är att det dels är vanligt, det är Free Software (fritt att använda, studera, och även modifiera och distribuera), och det är också förhållandevis enkelt och kraftfullt. 2.1 GitHub GitHub är en tjänst som sitter ovanpå Git. GitHubs främsta förtjänst är att de host:ar dina repository:s. Det vill säga, de ligger på GitHubs maskiner, så du slipper oroa dig för att förlora allt ditt arbete om du till exempel spiller kaffe på din dator. GitHub har också några andra användbara features som access control, verktyg för ärendehantering, och ett tjusigt webbgränssnitt. KTH tillhandahåller en egen GitHub server där du kan lagra dina programmeringsprojekt. Den kommer att användas under dina programmeringskurser under det första året. Men det kan vara praktiskt att också skapa ett riktigt GitHub-konto för eventuella sidoprojekt, och eftersom du är student kan du utnyttja GitHub Student Developer Pack. För att komma åt KTHs GitHub så går du in på https://gits-14.sys. kth.se/ och loggar in med ditt KTH-id och lösenord. 1

3 Uppgiften Börja med att logga in på KTH GitHub om du inte redan gjort det. 3.1 Repositories eller repo:n En av grundstenarna inom versionshantering är ett repository. Ett repository är den struktur som innehåller alla filer och all metadata (data om data) som används av versionshanteringssystemet. I Git är ett repository en helt vanlig katalog, med en underkatalog som heter.git där all metadata lagras. Innehållet i.git är helt vanliga textfiler, i den teckenkodning som är default för systemet, och beskriver historiken för filerna i ett repository. För den som är nyfiken på hur det fungerar rent tekniskt finns det en utmärkt förklaring här. Till att börja med ska du skapa ett nytt repository, det gör du genom att klicka på plus-tecknet uppe i högra hörnet och därefter på New repository. Välj ett godtyckligt namn och skriv en kort beskrivning. I det här fallet är det inte så noga om du väljer Public eller Private. Men framtida uppgifter vill du se till att ha i ett privat repository. Välj Initialize this repository with a README. En README är en mer utförlig beskrivning av ditt projekt. Det kommer skapas en fil i ditt repository som heter README.md, där md betyder Markdown, vilket är ett annat språk som används för att formatera text. Du har också möjlighet att välja en fördefinierad gitignore. Gitignore är också en fil, och som namnet antyder så används den för att säga åt Git vilken typ av filer som inte ska hanteras av systemet. Det kan vara värdefullt att ta en titt på senare, men täcks inte in i den här uppgiften. 3.2 Commits Git beskriver ditt repository som en serie av commits. En commit ses som en följd av ändringar till filer (tilläggningar/borttagningar av filer, uppdateringar av innehåll) och ett meddelande. Meddelandet ska vara beskrivande av vilka ändringar som gjorts. Om du tittar på ditt repository i webgränssnittet kan du se att du har en commit, som beskriver ändringarna i din README-fil. 2

3.3 Kloning För att kunna arbeta med ditt nya repository på din dator behöver du klona det. Men för att kunna göra det behöver du kunna autentiseria dig, det vill säga, visa för GitHub att du är vem du utger dig för att vara. För KTH GitHub görs detta med något som kallar SSH-nycklar. Hela förloppet för att skapa nycklarna och koppla det till ditt konto beskrivs här. UnderStep4skadudockinteinstalleraxclip,dufåriställetersätta: xclip -sel clip < ~/.ssh/id_rsa.pub med cat ~/.ssh/id_rsa.pub och markera manuellt från (inklusive) ssh-rsa... fram till och med din e-mail, och kopiera med Ctrl+Shift+C. Förhoppningsvis har du nu fixat med din nya nyckel och kan ansluta till KTH GitHub. Om du sen vill använda din egen dator behöver du följa samma steg (länken har instruktioner även för Windows och Mac, under huvudrubriken). Om du nu går tillbaka till ditt repository i webbläsaren, och kollar i den nedra högra delen av din skärm, så ser du en SSH-länk. Kopiera den, och öppna sedan ett terminalfönster och skriv (för att klistra in använder du Ctrl+Shift+V): git clone din-ssh-länk Om du nu kör kommandot ls bör du nu ha en mapp med samma namn som ditt repository. Om du går in i den med cd och kör ls -a bör du se mappen.git och din README-fil. Skapa sen en fil, och öppna den med någon texteditor och skriv något i den. Sen går du tillbaka till din terminal, och skriver: git add filnamn 3

Det här lägger till din nya fil i vad som kallas för indexet. Indexet kan ses som ett mellansteg där innehåll som ligger i din mapp lagras inför en commit. Därefter behöver du paketera ihop det du gjort till en commit, det görs enklast med kommandot: git commit -a -m "meddelande" Där flaggan -a innebär att git automatiskt add:ar filer som redan spåras, och -m att vi ger meddelandet direkt i terminalen (annars öppnas en texteditor), notera att meddelandet måste stå inom citat-tecken! Det sista steget är att se till att dina ändringar också hamnar på GitHub. Vilket görs med kommandot git push Om du vid ett senare tillfälle sitter vid en en annan dator som också har en klon av ditt repository som inte har de senaste ändringarna behöver du innan du kan push:a använda git pull för att dra ner den kanoniska versionen (den som ligger på KTH GitHub). 4 Arbetsflöde När du arbetar med Git så gäller det framförallt att komma ihåg: Nya filer behöver läggas till med git add. Om du inte använder -a när du commit:ar behöver du även lägga till gamla filer igen. Försök i någon mån göra lagom stora commit:s, som är lätta att beskriva i ett kort meddelande. Saker hamnar inte på GitHub förrän du har push:at. Om din lokala kopia ligger efter GitHub behöver du först spara dina eventuella lokala ändringar med git commit, använda git pull, och sen lösa en eventuell merge-konflikt innan du kan push:a. 4

Något om Commit-meddelanden Commit-meddelanden kan ibland vara svåra att skriva, särskilt om en arbetat på något ett tag, och commit:en blivit väldigt stor. En tumregel kan vara följande citat: If the title of your commit contains the word and, then the commit is too large. Ett bra sätt att motverka för stora commits är att kontinuerligt skapa nya commits i och med att du arbetar. Om du dessutom push:ar dina ändringar till GitHub har du dessutom en back-up på ditt arbete. 5