Lær Git for versjonskontroll: repository, commit, branch, merge og GitHub.
Slutt på «prosjektv3ENDELIG_NY»
Har du noen gang lagret filer som prosjekt_v1.html, prosjekt_v2_ENDELIG.html og prosjekt_v3_ENDELIG_NY.html? Eller gjort en endring som ødela noe, uten å ha en kopi av den forrige versjonen? Versjonskontroll løser dette.
Git er et versjonskontrollsystem som holder styr på alle endringer i prosjektet ditt – som en tidsmaskin for koden. Du kan se hele endringshistorikken, gå tilbake til en hvilken som helst tidligere versjon, og samarbeide uten å overskrive andres arbeid. Git ble utviklet av Linus Torvalds i 2005 for Linux-kjernen, og er distribuert: hver utvikler har en komplett kopi av hele historikken, så du kan jobbe offline. Det gir deg flere superkrefter: full historikk over hvem som endret hva, en angre-funksjon som lar deg rulle tilbake, parallell utvikling og trygg eksperimentering med brancher, samarbeid mellom flere personer, og sikkerhetskopi i skyen.
Noen sentrale begreper er verdt å forstå før kommandoene. Et repository (repo) er prosjektmappen din med Git aktivert – den inneholder filene pluss en skjult .git-mappe med all historikk. Git har tre «områder»: Working Directory (mappen du jobber i, endringer er ikke lagret ennå), Staging Area (et mellomsteg der du velger hva som skal med i neste lagring, med git add), og Repository (den permanente historikken, med git commit). En commit er et øyeblikksbilde av prosjektet – som et lagringspunkt i et spill. Og en branch er en parallell utviklingslinje, der hovedbranchen heter main.
Brancher, merge og gode meldinger
Når du committer, bør du skrive en god commit-melding. Den er fremtidens dokumentasjon – når noen lurer på hvorfor en endring ble gjort, er meldingen det første stedet å sjekke. Dårlige meldinger som «fix», «endringer» eller «ting» sier ingenting. Gode meldinger forklarer hva som ble endret og hvorfor: «Fiks feil der kontaktskjema ikke sendte e-post» eller «Legg til responsivt design for mobil». Retningslinjene: start med et verb i imperativ («Legg til», «Fiks», «Endre»), vær spesifikk, hold første linje kort, og ha én logisk endring per commit.
Branching er en av Gits kraftigste funksjoner. En branch lar deg jobbe på en funksjon isolert fra resten – som et parallelt univers der du kan gjøre hva du vil uten å påvirke den fungerende koden i main. En typisk arbeidsflyt: du står på main, lager en ny branch med git checkout -b legg-til-bildegalleri, gjør endringer og committer dem der, og når funksjonen er ferdig og testet, merger du den tilbake til main.
Noen ganger har to brancher endret de samme linjene i en fil. Da oppstår en merge-konflikt – Git kan ikke avgjøre hvilken versjon som er riktig, og ber deg løse det manuelt. I filen markeres konflikten med <<<<<<<, ======= og >>>>>>> rundt de to versjonene. Du velger hvilken du vil beholde (eller kombinerer dem), fjerner konfliktmerkene, og committer resultatet.
GitHub og samarbeid
Mens Git er kommandolinjeverktøyet som kjører lokalt, er GitHub en nettbasert plattform som bygger på Git og legger til samarbeidsverktøy. På GitHub kan du lagre repositorier i skyen, dele kode, samarbeide gjennom pull requests, spore feil og oppgaver med Issues, og bygge en portefølje av prosjektene dine.
Hjertet av samarbeid på GitHub er pull request (PR). Når du har jobbet med en funksjon i en branch og vil slå den sammen med main, oppretter du en pull request. PR-en viser alle endringene dine (en diff), lar teammedlemmer kommentere på konkrete kodelinjer, åpner for diskusjon om designvalg, kan kjøre automatiske tester, og krever ofte godkjenning før sammenslåing. En typisk arbeidsflyt: lag en branch lokalt, gjør endringer og commit, push branchen til GitHub med git push -u origin min-branch, opprett en pull request, la teamet gjennomgå og kommentere, gjør eventuelle justeringer, og merge når PR-en er godkjent.
For skoleprosjekter er GitHub et utmerket verktøy. Læreren kan se kodehistorikken og hvem som bidro med hva. Gruppemedlemmer jobber på ulike deler samtidig. Issues fungerer som en Kanban-lignende oppgaveliste, README-filen er prosjektdokumentasjon, og GitHub Pages kan publisere nettsider gratis. Med Git og GitHub har du de samme verktøyene som profesjonelle utviklere bruker hver dag.
Oppsummering
Git er en tidsmaskin for koden – et distribuert versjonskontrollsystem som lagrer all historikk og lar deg gå tilbake, eksperimentere og samarbeide. Grunnbegrepene er repository (prosjektet med historikk), de tre områdene working directory, staging area og repository, commit (et lagringspunkt) og branch (parallell utviklingslinje).
Du lagrer endringer med git add → git commit → git push, og skriver gode, beskrivende commit-meldinger. Brancher lar deg jobbe isolert, og når du merger kan det oppstå konflikter du må løse manuelt. GitHub legger samarbeid oppå Git, der pull requests er kjernen i kodegjennomgang. Sammen er Git og GitHub de samme verktøyene profesjonelle utviklere bruker daglig – og uvurderlige også for skoleprosjekter.
Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.