Git
Skaper(e)Linus Torvalds[1]
Utvikler(e)Software Freedom Conservancy[2]
Utgitt 7. april 2005[3]
Nyeste versjon2.45.2 (31. mai 2024)[4]
Kodelagerhttps://git.kernel.org/pub/scm/git/git.git
Operativsystemmultiplattform GNU/Linux BSD Mac OS Microsoft Windows Unix-liknende
Skrevet iC,[5] Perl, Tcl, Python, C++
TypeVersjonskontroll
LisensGPLv2[6]
Nettstedgit-scm.com (en)

Git er et versjonskontrollsystem, en type programvare. Det kjennetegnes ved å være distribuert og ikke mappehierarki-basert (se Egenskaper). Et viktig designkriterium for Git var hastighet ved sammenfletting (merging). Git ble påbegynt av Linus Torvalds, men på et tidlig tidspunkt overtatt av Junio Hamano, som nå leder videre utvikling og vedlikehold. Blant andre distribuerte versjonskontrollsystemer kan nevnes Mercurial, som ble startet omtrent samtidig med Git, og Bitkeeper, en kommersiell forløper som var den viktigste inspirasjonskilden for Git.

Egenskaper

[rediger | rediger kilde]

Begreper og kommandoer

[rediger | rediger kilde]

Selv om git-funksjonalitet også er tilgjengelig gjennom grafiske programmer (f.eks. gitk, SourceTree), tilleggsfunksjonalitet i populære editorer (Visual Studio, IntelliJ), serversideprogrammer (cgit, GitLab, Gerrit, BitBucket) og enkeltstående nettsider (GitHub), er Git i seg selv et kommandospråk.

Et git-repositorium (ofte forkortet repo) kan lages utfra en hvilken som helst mappe med kommandoen git init. Da etableres det en undermappe med navn .git. I denne lagres historikken til filer som befinner seg i repositoriet og dets undermapper. Historikken består av endringstransaksjoner (commit) som brukere har lagret, og kan forgreines, rebaseres på hverandre og spleises (branch/rebase/merge). Hovedgreina er vanlig å kalle master eller main. Man kan bytte aktiv grein med git checkout, og den til enhver tid gjeldende greina av historien kalles med et synonym HEAD.

Filer må eksplisitt legges til (git add) for å være under versjonskontroll. Endringer vil da oppdages, og vises av git diff. For å lage en endringstransaksjon av endringene, bruker man så kommandoen git commit. Filer som ikke er under versjonskontroll vil vises av git status; disse kan ignoreres ved å legge dem til i fila .gitignore.

I stedet for nummererte endringstransaksjoner er hver av disse navngitt ved sin egen sha1-sjekksum. Endringstransaksjonene kan også gis alternative navn med git tag, typisk for versjonering. Historikken kan vises på forskjellige vis: Endringer kan oppramses i rekkefølge med git log eller linjevis per fil med git blame.

For å kunne jobbe frakoblet, har Git et konsept om fjerne repositorier som bare synkroniseres eksplisitt. Når et repositorium klones (git clone) fra et annet, vil det opprinnelige repositoriet automatisk få navnet origin i det klonede repositoriet, og dette navnet brukes for å angi hvilket fjernt repositorium man synkroniserer med. Andre kan legges til og fjernes med git remote. Synkronisering er heller ikke tosidig: Henting av endringer skjer med git fetch (eller git pull, som er en kombinasjon av fetch og merge), mens å pådytte endringer på et fjernt repositorium (git push) krever skrivetilgang, noe man typisk ikke har med mindre det er ets eget. Derfor er det også vanlig å sende hverandre såkalte pull requests eller patcher via e-post.

Eksempel på bruk

[rediger | rediger kilde]
Opprydning: Denne seksjonen trenger en opprydning for å oppfylle Wikipedias kvalitetskrav. Du kan hjelpe Wikipedia ved å forbedre den.

Følgende avsnitt gir eksempler på hvordan man kan bruke git via kommandolinje / terminal. Den tar utgangspunkt i at man med kommandolinje har navigert frem til en mappe som inneholder en fil ved navn "kildekode.cpp".

git init

Lager et nytt git respository i mappen du kjører kommandoen. Det er her alle kildefiler og versjoner av disse lagres.

git add kildekode.cpp

Legger til filen kildekode.cpp midlertidig til versjonen av prosjektet du jobber på. Hvis dette ikke er oppgitt vil du dytte opp til master versjonen (master branch).

git commit -m "lagt til første kildekodefil"

Gjør en commit på endringer og opprettelse av nye filer til versjonen av prosjektet du jobber på. Det vil si at endringene blir lagt til permanent og at disse dukker opp i loggen med meldingen "lagt til første kildekodefil".

git log --graph

Viser loggen til git prosjektet som er i mappen du befinner deg i. Flagget "--graph" lager en grafisk illustrasjon av hvordan de forskjellige versjonene av prosjektet er flettet sammen. Loggen inneholder også hvem som utførte commiten, og når dette ble gjort.

Referanser

[rediger | rediger kilde]
  1. ^ https://web.archive.org/web/20151116175401/https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23ca2e25604af290.
  2. ^ https://github.com/git/git/graphs/contributors; besøksdato: 3. august 2018.
  3. ^ «Re: Trivia: When did git self-host?». Besøkt 5. november 2019. 
  4. ^ Junio C. Hamano (31. mai 2024). «[ANNOUNCE] Git v2.45.2 and friends to unbreak "git lfs" and others». Besøkt 31. mai 2024. 
  5. ^ «The git Open Source Project on Open Hub: Languages Page». Open Hub. Besøkt 14. juli 2018. 
  6. ^ «Copying» (engelsk). Besøkt 5. august 2018. 

Eksterne lenker

[rediger | rediger kilde]