Link Search Menu Expand Document (external link)

PG 1.1 Versionshantering (Git)

Table of contents


Versionshanteringssystem (VCS)

Ett versionshanteringssystem (VCS, eller Version Control System) är mjukvara som låter oss följa ändringar vi gör i koden över tid. När vi “committar”/gör en commit så sparas en avbild av koden/projektet som det ser ut just då. Vi kan sen gå tillbaka i tiden och hämta just det ögonblicket.

Varför behövs versionshantering?

  • Kunna se historik, gå bakåt i tiden
  • Ibland blir det fel
  • Hantera olika lösningar på samma problem
  • “Resa” framåt och bakåt i tiden och testa olika lösningar
  • Spåra vem som gjort vad

Hur ofta ska vi versionshantera?

Lagom, committar du för ofta blir det plottrigt och gör du det för sällan blir det väldigt svårt att backa.

  • När du nått en checkpoint, spara sin progress
  • När du tror att du kommer att vilja backtracka till den här punkten
  • När någonting fungerar

Git

Git är ett OSDVCS (Open-Source Distributed Version Control System).

  • Control System – system som håller koll på saker som finns på ens dator/server
  • Version Control System – (versionshanteringssystem) istället för att spara nya filer när saker uppdateras, så sparas versioner av hur filerna såg ut just då
  • Distributed – är distribuerat d.v.s. det finns på internet

Git är det överlägset mest använda VCS:et, skapat av Linus Torvalds runt 2005.

Branches

Enkelt förklarat så går Git ut på att vi har en master/main branch, som är som stammen på ett träd. Vi gör sen nya branches som är som grenar på trädet. När vi till exempel jobbar med en ny feature kan vi göra en ny branch. Vi gör alla ändringar och ny kod i den nya branchen, och när vi är nöjda så mergar vi in den nya branchen i master/main.

GitHub

GitHub är en plattform som hanterar Git repositories (projekt/system). Det finn flera andra, men GitHub är vanligast. Det är som en extra säkerhet, att versionshanteringen och koden vi gör inte enbart finns lokalt. Vi kopplar vårat lokala repo mot GitHub, och kan då dels se den på GitHubs site, dels enkelt hantera merges och annat. Att använda GitHub och liknande plattformar underlättar väldigt mycket när det är flera utvecklare i ett projekt.