Git er versjonskontroll. Dette brukes mye for prosjekter, spesielt når flere jobber sammen om samme prosjekt. Kjapt og kort om git:

  • Et git repository ("repo") er i bunn og grunn en mappe med filer
  • Git er versjonskontroll, som blant annet betyr at alle endringene som er blitt gjort på innholdet i et repo er sporet på en ryddig måte
  • Et git-repo kan "klones" og eksistere på mange ulike maskiner. Endringer kan gjøres lokalt på en maskin og senere overføres til de andre klonene av repoet. Alle klonene er i prinsipppet likeverdige, men ofte har man en server med en klone av repoet som utfører en del ekstra funksjoner (issues, testing, publisering m.m.).
  • I motsetning til f.eks. Dropbox eller Google Drive, er det ingen automatisk synkronisering mellom kloner av et repo. Henting (pull) og sending (push) av endringer (commit) gjøres manuelt/eksplisitt.

The Gospel

Innen ingeniørarbeid har versjonskontroll enorm verdi. Det virker kanskje simpelt, men det gir deg automatisk oversikt over alle endringer som er gjort i et prosjekt, og gjør det mye enklere å samarbeide om f.eks. koding.

Selv om du bare skal slenge sammen et latterlig prosjekt på OV en kveld, så er det like greit å legge det på git. Det koster nesten ingenting når du har lært deg hvordan du gjør det, og er gull verdt hvis du ender opp med å fortsette på det senere, eller noen andre ender opp med å prøve å reparere det.

Det å bli rutta med git kommer også godt med i nesten alle ingeniørjobber, så det er like greit å begynne å lære seg det tidlig.

Hvordan git

De mest brukte kommandoene finner du her: Git Cheat Sheet

Boken Pro Git med all dokumentasjon og masse informasjon finner du her: https://git-scm.com/book/en/v2

Ordbok

  • commit: Gjøre bestemte lokale endringer "offisielle", dvs at de kan sendes til andre kloner av repoet
  • pull: Hente commit'a endringer fra en annen klone av repoet
  • push: Sende commit'a endringer fra en annen klone av repoet. I samarbeidsprosjekter er det vanligvis god praksis å ikke pushe til master/main.
  • pull request: Foreslå at noen pull'er dine endringer. Vanligvis blir endringene godkjent av noen andre som kvalitetssikring.
  • clone: Lage en kopi av et repo
  • branch: En parallel versjon av et repo hvor man kan gjøre endringer separat, for så å merge dem sammen senere