Lær Git fra bunnen: installasjon, de viktigste kommandoene, branching og merge – og forskjellen på GitHub, GitLab og Bitbucket forklart enkelt.
Innhold i artikkelen (7)
Hva er Git og hvorfor er det viktig?
Git er et distribuert versjonskontrollsystem — et verktøy som sporer alle endringer i kodefilene dine over tid. Tenk på det som et uendelig "angre"-system kombinert med et samarbeidsverktøy. Linus Torvalds, skaperen av Linux, startet Git i 2005 etter at Linux-kjernemiljøet mistet den gratis lisensen til det tidligere verktøyet BitKeeper, ifølge Git-prosjektets egen historikk. Git er i dag et av de mest brukte versjonskontrollsystemene i programvareutvikling.
Uten versjonskontroll er samarbeid på kode vanskelig å holde oversikt over: hvem endret hva, når og hvorfor? Hvordan slår man sammen endringer fra to utviklere? Hvordan ruller man tilbake en ødelagt funksjon? Git er bygget for å løse nettopp disse problemene, og er en nyttig ferdighet for de fleste som programmerer.

Installer og konfigurer Git
Last ned Git fra git-scm.com — tilgjengelig for Windows, macOS og Linux. På macOS kan du installere via Homebrew: "brew install git". På Ubuntu/Debian: "sudo apt install git". Verifiser installasjonen med "git --version".
Det første du gjør etter installasjon er å sette navn og e-post — dette lagres i alle dine commits: "git config --global user.name \"Ditt Navn\"" og "git config --global user.email \"din@epost.no\"". For Windows anbefales Windows Terminal og Git Bash for beste opplevelse.
Skal du bruke Git sammen med GitHub, trenger du autentisering utover brukernavn og passord: GitHub fjernet støtte for passordinnlogging ved Git-operasjoner over HTTPS i august 2021, og krever nå en personlig tilgangstoken (PAT), SSH-nøkkel eller GitHub CLI. Bruker du HTTPS, limer du inn PAT-en i feltet der Git spør etter passord; bruker du SSH-nøkkel, slipper du å oppgi noe hver gang.
De viktigste Git-kommandoene
"git init" initialiserer et nytt Git-repository i gjeldende mappe — oppretter en skjult .git-mappe som sporer alle endringer. "git clone URL" kopierer et eksisterende repository (f.eks. fra GitHub) til din maskin med full historikk.
"git add FILNAVN" legger til en fil i staging-area (klar for commit). "git add ." legger til alle endrede filer. "git commit -m \"Beskrivelse av hva du endret\"" lagrer endringene permanent i historikken. Skriv meningsfulle commit-meldinger — du (eller kollegaer) vil takke deg selv om seks måneder.
- git init — opprett nytt repository
- git clone URL — kopier eksisterende repository
- git status — vis status for endrede filer
- git add . — legg alle endringer til staging
- git commit -m "melding" — lagre snapshot med beskrivelse
- git push origin main — last opp til remote (GitHub)
- git pull — last ned siste endringer fra remote
- git log --oneline — vis commit-historikk kompakt
Branching — parallell utvikling
En branch (gren) er en parallell versjon av kodebasen. GitHub satte "main" som standard branch-navn for nyopprettede repositoryer fra 1. oktober 2020, ifølge GitHubs egen endringslogg — eldre repositoryer kan fortsatt hete "master". Når du skal utvikle en ny funksjon, lager du en ny branch: "git switch -c funksjon/ny-login". Den eldre kommandoen "git checkout -b funksjon/ny-login" gjør det samme og fungerer fortsatt, men git switch er laget spesifikt for å bytte branch, mens checkout også gjør flere andre ting og derfor er lettere å bruke feil. Du jobber på denne branchen uten å påvirke main, og merger den inn når funksjonen er ferdig og testet.
"git branch" viser alle branches. "git switch BRANCH-NAVN" (eller det eldre "git checkout BRANCH-NAVN") bytter til en annen branch. "git merge BRANCH-NAVN" slår sammen endringer fra en annen branch inn i gjeldende branch. "git branch -d BRANCH-NAVN" sletter en branch lokalt etter merge. Merge-konflikter oppstår når to branches har endret samme linje — Git markerer konflikten i filen og du løser den manuelt.
GitHub — samarbeid og deling av kode
GitHub er en skybasert plattform for Git-repositories. Det er ikke det samme som Git — GitHub er en tjeneste bygget oppå Git som legger til samarbeidsverktøy: pull requests, issues, code review, GitHub Actions (CI/CD) og GitHub Pages, som er gratis webhosting for offentlige repositories på alle GitHubs planer.
En typisk arbeidsflyt: (1) Fork et repository (lag din kopi). (2) Klon til din maskin. (3) Lag en ny branch. (4) Gjør endringer og commit. (5) Push til din fork. (6) Åpne en Pull Request mot originalrepoet. (7) Kodegjennomgang og diskusjon. (8) Merge av maintainer. Dette er open source-arbeidsflyt og brukes i mange profesjonelle team.
GitHub vs GitLab vs Bitbucket
GitHub er den største Git-plattformen, med over 100 millioner utviklere per januar 2023, ifølge GitHub selv. Microsoft kjøpte GitHub i 2018 for 7,5 milliarder dollar i Microsoft-aksjer, ifølge Microsofts egen kunngjøring, og har siden lagt til AI-funksjoner som GitHub Copilot.
GitLab kan installeres og driftes på egne servere. Den selvhostede Free-utgaven har ingen brukergrense, i motsetning til den gratis varianten på gitlab.com som er begrenset til fem brukere per privat namespace — noe som kan være relevant for virksomheter med krav til å lagre data på egne systemer. Bitbucket (Atlassian) er et alternativ for team som allerede bruker Jira og Confluence.
Praktiske tips for nybegynnere
Vanlige fallgruver: (1) Å committe direkte til main i stedet for på en branch. (2) For sjeldne commits — commit ofte og smått. (3) Dårlige commit-meldinger som "fix" eller "changes". (4) Å pushe sensitiv informasjon (passord, API-nøkler) — bruk .gitignore og sjekk alltid "git status" før push.
Gjorde du en feil, finnes det trygge veier tilbake. La du til feil fil ved et uhell? "git restore --staged FILNAVN" fjerner filen fra staging uten å røre selve endringen, ifølge git restore-dokumentasjonen. Skal du fjerne lokale commits som aldri er pushet, bruker du "git reset": "--soft" flytter bare HEAD og beholder endringene i staging, "--mixed" (standardvalget) beholder endringene men fjerner dem fra staging, og "--hard" sletter endringene for godt, ifølge git reset-dokumentasjonen — bruk "--hard" bare når du er sikker på at du vil miste alt ikke-committed arbeid. Er commiten allerede pushet og delt med andre, bruk i stedet "git revert COMMIT-HASH": den lager en ny commit som reverserer endringen uten å skrive om historikken, ifølge git revert-dokumentasjonen, og er derfor trygg også på delte branches.
Læringsressurser: Learn Git Branching er et interaktivt verktøy for å øve på branching og merging visuelt i nettleseren. GitHub Skills er GitHubs egne, gratis interaktive kurs i Issues og Actions. Boken "Pro Git" av Scott Chacon og Ben Straub er gratis tilgjengelig i sin helhet på git-scm.com. Et godt første steg er å sette opp et lite personlig prosjekt på GitHub og øve på hele arbeidsflyten — fra commit til pull request.





