Molnet & portföljen

Det räcker inte att spara

Ctrl+S är en mycket god vana. Du skriver något, du sparar. Men när du sparar en fil skriver du över den gamla versionen, föregående version är borta. Om du inser en timme senare att det du raderade faktiskt var det rätta, finns det ingenting att gå tillbaka till. Eller om dina husdjur tillsammans äter upp din dator fem minuter innan deadline så är allt borta...

Det finns också en annan nyans av det, en sparad fil berättar inte vad som ändrades, när eller varför. Om du om tre månader öppnar ett projekt du jobbade med i höstas har du ingen historik. Ingen logg. Inget sätt att förstå hur koden kom att se ut som den gör.

För att lösa båda problemen använder vi Versionshantering Ett system som spårar förändringar i filer över tid och låter dig återgå till tidigare versioner. Git är det vanligaste verktyget inom mjukvaruutveckling. Se: Molnet & portföljen . Ett system som sparar historiken av dina ändringar och låter dig gå tillbaka i den. Det vanligaste verktyget för versionshantering heter Git, ett program som bor på din dator och sparar en checkpoint varje gång du ber om det, med tidsstämpel och ett meddelande du skrivit. GitHub är en webbtjänst som lagrar den historiken på en server utanför din dator. Tillsammans är de ett tidsdokument och en säkerhetskopia i ett.

Git skrevs 2005 av Linus Torvalds, samma finlandssvensk som startade Linux. Han byggde det för sitt eget behov: verktyget som Linux-utvecklarna dittills använt slutade vara gratis, och tusentals personer runt om i världen behövde fortsätta arbeta i samma kodbas utan att trampa på varandra. Det du redan installerat är alltså ett verktyg som växte fram ur ett problem, inte ur en produktplan.

Versionshantering, mer än backup

En vanlig säkerhetskopia kopierar filer till ett annat ställe. Det skyddar mot hårdvarufel men berättar ingenting om historiken.

Versionshantering är något annat. Varje gång du gör en Commit En sparad checkpoint i Git-historiken. Innehåller exakt vilka rader som förändrats, en tidsstämpel och ett meddelande. Se: Molnet & portföljen sparar Git exakt vilka rader som lagts till, ändrats eller tagits bort jämfört med föregående commit. Du kan gå tillbaka och se koden exakt som den såg ut vid vilken commit som helst. Du kan jämföra versioner. Du kan återgå till ett tidigare tillstånd om du inser att en ändring var fel.

Skapa ett GitHub-konto

Gå till github.com och skapa ett konto om du inte redan har ett. Välj ett användarnamn du är nöjd med, det syns i länkarna till dina projekt och kan fungera som din portfölj.

Adressen i dina commits

I Kom igång talade du om för Git vem du är, och lovade vi att återkomma till adressen. Nu har du ett konto, så nu går det.

Varje commit du gör bär den adress du skrev in, och när du strax publicerar ditt repo blir de synliga för vem som helst. Vill du inte ha din riktiga adress ute erbjuder GitHub en dold ersättare. Gå till Settings -> Emails och kryssa i Keep my email addresses private. Sidan visar då den dolda adress du fått tilldelad, på formen användarnamn@users.noreply.github.com med ett nummer före. Kopiera den och sätt den som din commit-adress:

git config --global user.email "din-dolda-adress"

På samma sida finns Block command line pushes that expose my email. Den stoppar en push som skulle avslöja din riktiga adress, alltså ett skyddsnät om du glömmer bort inställningen på en annan dator.

Koppla VS Code till GitHub

VS Code har inbyggt stöd för Git, du behöver aldrig öppna en terminal för att committa och Push Att skicka lokala commits till GitHub. Commits du gjort lokalt syns inte online förrän du pushar. Se: Molnet & portföljen .

Öppna Source Control-panelen med ikonen i sidofältet (ser ut som en förgrenad linje) eller med Ctrl+Shift+G (Mac ⌃⇧G).

Source Control-panelen hittar du i sidofältet.

Första gången du öppnar en ny mapp i VS Code klickar du på Initialize Repository. Det sätter igång Git-spårning för mappen. En dold .git-mapp skapas, rör den inte manuellt, det är Gits databas.

Initialize Repository startar Git-spårning för din mapp.

Ditt arbetsflöde

Varje gång du gjort ändringar du vill spara följer du samma tre steg i Source Control-panelen.

Steg 1, Staged Changes Filer du markerat som redo att ingå i nästa commit. Staging låter dig välja exakt vad varje commit ska innehålla. Se: Molnet & portföljen Ändrade filer visas under Changes. Klicka på + bredvid ett filnamn för att lägga till den i Staged Changes, det är vad som kommer ingå i nästa commit. Klickar du + bredvid rubriken Changes stageas alla filer på en gång.

Klicka + för att flytta filer till Staged Changes.

Steg 2, Commit Skriv ett beskrivande meddelande i textfältet längst upp i panelen. Klicka sedan på ✓ Commit (eller tryck Ctrl+Enter, Mac ⌘Enter).

Steg 3, Publicera och pusha Första gången klickar du på Publish Branch. VS Code frågar om du vill publicera till GitHub och låter dig välja om repositoryt ska vara publikt eller privat. Välj Public, det är din portfölj.

Publish Branch skapar ett GitHub-repository och pushar din historik.

Framöver ser du en synkroniseringsknapp i statusfältet längst ned i VS Code. Klicka på den för att pusha dina commits till GitHub.

Commit-meddelanden

Ett commit-meddelande är ett brev till framtida dig. Det ska svara på: vad ändrade jag?

Meddelanden som de här berättar ingenting för den som läser historiken:

update
klar
asdfgh

Skriv i stället vad som faktiskt hände:

Lade till välkomstmeddelande i hej.py
Fixade stavfelet i print()-satsen
Första skriptet, tre print-rader

I den här kursen bedöms din Git-historik som en del av ditt arbete. En historik med meningsfulla commit-meddelanden visar att du förstår vad du gör. Det är också den bästa demonstrationen av ett progressivt arbetsflöde.

Uppgift: Din kod i molnet

  1. Öppna din kursmapp i VS Code. Gå till Source Control-panelen och klicka Initialize Repository om Git inte redan är igång.

  2. Du ska ha hej.py från förra delen. Klicka + bredvid filen för att stagea den.

  3. Skriv commit-meddelandet Första skriptet i textfältet och klicka ✓ Commit.

  4. Klicka Publish Branch, välj Public och bekräfta. VS Code skapar ett GitHub-repository och pushar din historik.

  5. Öppna github.com och hitta ditt nya Repository (repo) En mapp vars innehåll och förändringshistorik spåras av Git. Kan vara lokalt på din dator, på GitHub, eller båda. Se: Molnet & portföljen . Bekräfta att hej.py syns.

  6. Gör en liten ändring i hej.py, ändra texten i en print()-sats. Spara filen, stagea den, skriv ett nytt commit-meddelande och pusha med synkroniseringsknappen.

Vad händer om

Ovanför fillistan i ditt repo på GitHub står hur många commits det innehåller, till exempel 2 Commits. Klicka på den siffran, så får du hela historiken, och klicka dig sedan in på din allra första commit. Vad kan du se där, och vad innebär det att den informationen ligger kvar för alltid?

Motivera & reflektera

Motivera i din README varför update är ett dåligt commit-meddelande. Vad vill framtida du veta när du läser historiken om tre månader?