Hop til indhold
Udvikling og programmering

GitHub

GitHub er en webbaseret platform til hosting og versionsstyring af kildekode, bygget på det underliggende system Git. Platformen gør det muligt for udviklere at gemme, dele og samarbejde om softwareprojekter i såkaldte repositories, uanset om projektet er offentligt tilgængeligt eller forbeholdt en afgrænset gruppe. GitHub bruges af enkeltpersoner, virksomheder og open source-fællesskaber til at organisere kode og følge et projekts udvikling over tid.

Når flere udviklere arbejder på samme projekt, giver GitHub et fælles sted at samle koden, så alle ændringer kan spores tilbage til den person og det tidspunkt, de blev lavet. Hvis et team eksempelvis bygger en webshop, kan hver udvikler arbejde på sin egen del af koden i en separat branch, og først når ændringerne er testet og godkendt af de øvrige i teamet, samles de i projektets fælles hovedversion.

Hvad bruges GitHub til?

GitHub bruges primært til at hoste kildekode og styre, hvordan den udvikler sig over tid. Platformen har dog udviklet sig til meget mere end et rent lager for kode og bruges typisk til:

  • Open source-projekter, hvor kode ligger frit tilgængelig, og hvem som helst kan foreslå ændringer.
  • Samarbejde i teams, hvor kolleger reviewer hinandens kode, diskuterer løsninger og retter fejl sammen.
  • Et personligt “kodeportfolio”, hvor udviklere viser deres projekter og bidrag frem for potentielle arbejdsgivere.
  • Automatiserede test- og udgivelsesprocesser (CI/CD), hvor kode bygges, testes og udgives automatisk, når der laves ændringer.
  • Dokumentation af projekter via README-filer og wikis skrevet i Markdown.

Sådan fungerer GitHub

Et GitHub-repository er selve mappen, hvor et projekts filer og historik opbevares. Inde i et repository arbejder udviklere typisk med nogle faste begreber, der går igen på tværs af næsten alle projekter på platformen:

  • Branches lader en udvikler arbejde isoleret på en ny funktion eller fejlrettelse, uden at det påvirker den kode, som resten af teamet bruger.
  • Commits er de enkelte, dokumenterede ændringer, der bygger projektets historik op skridt for skridt.
  • Pull requests er en anmodning om at få en branch’s ændringer godkendt og indbygget i hovedkoden, ofte efter en code review fra en kollega.
  • Issues bruges til at registrere fejl, idéer og opgaver, så teamet kan prioritere og følge status på det, der skal laves.

Selve overførslen af kode mellem en udviklers computer og GitHubs servere sker som regel via Git-kommandoer, der forbindes til platformen gennem SSH (Secure Shell), som krypterer forbindelsen og sikrer, at kun autoriserede brugere kan sende ændringer til et repository.

Fordele ved at bruge GitHub

Fordi GitHub leveres som en cloud-baseret tjeneste – en form for SaaS (Software as a Service) – behøver den enkelte bruger eller virksomhed ikke selv drive og vedligeholde serverinfrastruktur for at få adgang til platformens funktioner. Det gør det forholdsvis nemt at komme i gang, uanset om man er en enkelt udvikler eller en stor organisation.

Andre fordele ved GitHub omfatter blandt andet:

  • En detaljeret historik over alle ændringer, så man altid kan gå tilbage til en tidligere version af koden.
  • Indbyggede værktøjer til code review, der gør det lettere at fange fejl, før de rammer den færdige software.
  • GitHub Actions, som kan automatisere gentagne opgaver som test, build og udrulning af kode.
  • Sikkerhedsfunktioner som scanning for kendte sårbarheder i tredjepartsbiblioteker og beskyttelse mod utilsigtet offentliggjorte adgangskoder og nøgler.
  • Adgang til GitHubs REST API, som gør det muligt at hente og opdatere data om repositories, issues og pull requests programmatisk og dermed integrere GitHub med andre systemer.

Hvem bruger GitHub?

GitHub bruges af et bredt spektrum af brugere: uafhængige udviklere, der arbejder på fritidsprojekter eller bidrager til open source; softwarevirksomheder og teams, der har brug for et fælles sted at organisere kildekode; samt store organisationer, der anvender platformen til at strukturere komplekse udviklingsprojekter og onboarde nye medarbejdere. Mange kendte softwareprojekter, herunder store dele af open source-økosystemet, har deres kildekode hostet på GitHub, hvilket gør platformen til et naturligt samlingspunkt for både bidragydere og brugere af koden.

GitHubs historie

Grundlaget for GitHub blev lagt i 2005, da Linus Torvalds skabte versionskontrolsystemet Git til at styre udviklingen af Linux-kernen. GitHub selv blev grundlagt i 2008 af Tom Preston-Werner, Chris Wanstrath, PJ Hyett og Scott Chacon, der ville gøre Git lettere tilgængeligt gennem en webbaseret grænseflade med samarbejdsfunktioner ovenpå. I de følgende år voksede platformen til at blive et centralt samlingspunkt for open source-udvikling, og i 2018 blev GitHub opkøbt af Microsoft. Siden opkøbet har GitHub blandt andet lanceret GitHub Actions til automatisering af test og udgivelse samt GitHub Copilot, en AI-baseret kodeassistent der forsøger at forudsige og foreslå kode, mens udvikleren skriver.

Eksempel
En udviklergruppe, der bygger en mobilapp, kan bruge GitHub til at gemme koden i et fælles repository, hvor hver ny funktion udvikles i sin egen branch, inden den samles i hovedkoden via en pull request.
Ofte stillede spørgsmål
Hvad er forskellen mellem Git og GitHub?
Git er selve versionskontrolsystemet, der kører lokalt på en computer og styrer historikken for et projekts filer. GitHub er en cloud-baseret tjeneste, der hoster Git-repositories og tilføjer funktioner som pull requests, issues og samarbejde over internettet.
Er GitHub gratis at bruge?
GitHub har en gratis plan, som dækker de fleste behov for enkeltpersoner og mindre projekter, herunder ubegrænset antal offentlige og private repositories. Virksomheder og teams med behov for flere avancerede funktioner kan i stedet vælge en betalt plan.
Hvem ejer GitHub i dag?
GitHub har siden 2018 været ejet af Microsoft, der overtog platformen fra de oprindelige grundlæggere.
Hvad er en pull request på GitHub?
En pull request er en formel anmodning om at få ændringer fra en branch indbygget i projektets hovedkode. Den giver andre i teamet mulighed for at gennemgå og kommentere ændringerne, inden de merges.
Kan man bruge GitHub uden at kende Git i detaljer?
Ja, GitHub Desktop giver en grafisk brugergrænseflade, hvor man kan klone repositories, lave commits og synkronisere ændringer uden at skrive Git-kommandoer i terminalen, hvilket gør platformen mere tilgængelig for nybegyndere.
Vil du forstå, hvordan udviklere kan hente og opdatere data fra GitHub programmatisk, så andre systemer kan integrere med platformen?
REST API →