-
Notifications
You must be signed in to change notification settings - Fork 141
Komme i gang med Git
For å laste opp oppgaver til kidsakoder.no bruker vi GitHub. Dette er nettside som gir flere brukere muligheten til å jobbe i et prosjekt samtidig, laste opp hver sine deler, og så sette alt sammen til ett felles prosjekt.
Vi kan bruke ordtaket "jo flere kokker jo mer søl" når vi jobber med en side som Kodeklubbens nettside. Tenk på nettsiden som en stor kake som mange flittige kokker jobber sammen om å lage. Dersom du begynner å endre direkte på kaken kan det hende du endrer noe de andre kokkene var veldig fornøyde med, eller kanskje du ved et uhell brukte et kilo pepper i stedet for en teskje. For å hindre disse uhellene bruker vi versjonskontroll.
Helt enkelt fungerer det slik at du lager en kopi av prosjektet på Internett, og så en lokal kopi på datamaskinen din. Så deler du prosjektet opp i flere stykker du kan jobbe på individuelt. Du gjør forbedringene på en liten bit først, og så kan du be en administrator i Kodeklubben om å bytte ut den tilsvarende biten i det opprinnelige prosjektet med den du har forbedret. Det kan hende du får beskjed om å gjøre noen mindre endringer, men så vil en del av Kodeklubbens prosjekt være forbedret med dine endringer.
Dette er ideen bak Git, og i praksis fungerer det slik: Det er en felles samling av filer som nettsiden bygges opp av (her: github.com/kodeklubben). Dette kalles et repo, kort for repository.
-
Hver bruker som ønsker å bidra lager en fork, sin egen kopi av repo-et.
-
Brukeren lagrer (kalt clone på engelsk) sin fork lokalt på sin datamaskin.
-
En bruker lager en branch i sin egen fork, og bytter til den.
-
Brukeren gjør endringer i en eller flere filer, eller legger til noe helt nytt.
-
Brukeren kan commit-e endringer gjort i en branch,
-
Når du er ferdig med å commit-e kan du push-e endringene til Internett for å gjøre den klar for deling med resten.
-
Brukeren legger inn en pull request (ofte forkortet PR) og ber om at endringene hun har gjort lokalt blir merge-t med repo-et.
-
Alle kan se og kommentere på PR-en, før en administrator kan merge filene.
-
Endringene som brukeren gjorde i sin branch er nå en del av repo-et.
Git er skjelettet som ligger til grunn for arbeidsflyten vi beskriver her. Det finnes en rekke ulike programmer (eller mer korrekt brukergrensesnitt) for å sammhandle med dette skjelettet, for eksempel gjennom en kommandolinje (terminalen), et tekstredigeringsverktøy (Atom, Spacemacs) eller en skrivebordsklient (GitHub Desktop). Ønsker du å lære mer kan du lese om dette på de andre sidene du finner i menyen til høyre, men for en nybegynner anbefaler vi GitHub Desktop. Da den er en av de enkleste måtene å komme i gang med Git på.
-
Du må ha en bruker på github.com.
-
Last ned Git til datamaskinen din.
-
Du trenger en skrivebordsklient av Git.
-
Du trenger en editor å jobbe i, for eksempel Atom (for en grundigere innføring, se introduksjon til Atom).
Gå til Kodeklubbens GitHub, og klikk
fork
oppe i høyre hjørne. Da får du laget din egen kopi som du finner igjen på
din egen github-side.
Åpne GitHub Desktop og logg inn. Klikk clone repository
og velg oppgave-repoet
du kopierte fra Kodeklubben. Da laster du ned en kopi av denne til datamaskinen
din. Det er denne vi skal jobbe i videre. Merk deg hvor denne blir lagret!
For hver ting du vil gjøre i Git er det ryddig å lage en ny branch. Dette er
en uavhengig del av din egen fork du kan jobbe i. Endringer du gjør her
påvirker ikke andre branch-es du har laget, og heller ikke
master
-branch-en din før du er klar for at den skal gjøre det. Den bør ha et
beskrivende navn på stikkordsform, for eksempel navnet på oppgaven du skal
skrive. Slik blir det enklere for deg å holde styr på endringene du gjør, og det
er enklere for den som skal se over og merge å kontrollere at ting er gjort
riktig.
Du kan trykke ctrl + shift + N
for å lage en ny branch. Hvis du foretrekker
klikk og skriv kan du finne Branch
i menylinjen øverst og velge New branch...
. Skriv inn navnet og klikk Create branch
. Pass på at nye
branch-er lages ut fra master
, slik at du alltid tar utgangspunkt i det som
faktisk er den oppdaterte versjonen i repo-et.
Nå er du klar til å opprette eller endre filer. Åpne tekstbehandlingsprogrammet
du vil jobbe i, for eksempel Atom. Der kan du legge
til oppgaver
-mappa, som er den lokale kopien av fork-en din, som et
prosjekt. Da har du alle mappene og filene du vil jobbe med lett tilgjengelig.
For å unngå problemer i neste steg bør du alltid ha oppdatert
master
-branch-en din når du oppretter en ny branch. Dette ser du en
beskrivelse av lengre ned på denne siden.
Vi bør gjøre så lite som mulig i hver branch eller pull request. Da er det lett å se hva som er gjort og unngå at det sniker seg inn feil.
Gode navn på brancher:
-
scratch-ny-felix-herbert
-
elm-ny-prov-i-nettleser
-
python-fiks-fargespill-lenke
En branch bør altså ha navn etter temaet for endringen.
Du kan endre navnet på branchen din med git branch -m <gammeltnavn> <nyttnavn>
.
Hver endring som sendes til branchen (det kan være endring av flere filer) kalles en commit. En commit bør være liten, men "koden skal kompilere", altså skal den være fullstendig i den forstand at den inneholder et minimum av det du ønsker å endre eller legge til. Det bør være mulig å komme tilbake til tidligere commits uten at alt er ødelagt, og se rekkefølgen ting er blitt gjort i.
En commit bør ha sammendrag etter hva som er gjort. Beskjeden du sender med en commit ser da slik ut:
Skrevet ny Elm-oppgave om HTML
Det er også mulig å utdype sammendraget. I så fall står sammendraget på første linje, og videre tekst skal skrives under én tom linje. En commit-beskjed med sammendrag og utdypende tekst ser slik ut:
Skrevet ny Elm-oppgave om HTML
Oppgaven bruker `elm-lang.org/try` til å vise hvordan vi kan gjøre
HTML-generering med Elm. Oppgaven gir innsikt i
- Hvordan HTML er strukturer som et tre
- Hvordan vi leser feilmeldinger
- Hvordan vi kan se på andre eksempler.
Oppgavene er sortert etter kodespråk. For eksempel ligger Scratch-oppgaven "Astrokatt" i
oppgaver/src/scratch/astrokatt
sammen med alle tilhørende filer og alternative språk oppgaven er tilgjengelig på. For å skrive helt nye oppgaver lager du en ny mappe. Den skal ha samme navn som filen du skriver oppgaven i, noe kort og beskrivende. Pass på å ikke bruke mellomrom, men du kan markere orddeling med understrek.
Husk å lagre filene dine! Det er alltid kjedelig å miste arbeid du har gjort fordi du glemte å lagre. Før du kan gå videre på neste steg må alle filene du vil sende fra branch-en din være lagret.
Når du har lagret en ny fil i en branch vil du commit-e den slik at den legges til lokalt, og push-e for å sende den til fork-en din. Det gjør du i GitHub Desktop.
Til venstre har du en oversikt over alle filene som er endret i branch-en du
jobber i. Nederst er en boks der du kan skrive et sammendrag av hva du har
gjort, for eksempel Laget ny oppgave om en katt i verdensrommet
. Om du ønsker
å skrive litt mer kan du gjøre det i boksen under. Trykk Commit to [navn på branch]
og vent til det er gjort.
Så trykker du ctrl + P
for å push-e. Hvis du foretrekker å klikke kan du
finne Branch
i menylinjen og velge Push
eller bare trykke Publish branch
øverst i midten på skjermen. Nå blir det sendt til din fork på nettet, og
sammenlignet med det originale repo-et.
Gå til Kodeklubbens GitHub. Der ser
du at det har kommet opp en ny linje om at du har noe å legge til denne
versjonen. Til høyre er det en grønn knapp med Create pull request
. Trykk på
denne. Du blir sendt videre til en PR der teksten du skrev for commit-en din
er lagt inn allerede. Denne kan du endre eller la stå som den er. Rull deg ned
til du finner en grønn knapp med Create pull request
igjen og trykk på den.
Du har sendt en PR til repo-et! Nå er det bare å vente til en administrator kommenterer eller godkjenner. Om du ikke har slått det av får du e-postvarsel, så du trenger ikke følge med selv.
En del av poenget med å ville jobbe i Git er at flere kan jobbe sammen. Da må du
også huske på å oppdatere din egen fork med jevne mellomrom, slik at du har
den nyeste versjonen av prosjektet. På GitHub-siden for fork-en din kan du se
om det står This branch is NN commits behind kodeklubben:master
. I så fall kan
det være på tide å oppdatere. Dette gjør du helt enkelt i GitHub Desktop.
-
Åpne programmet, og sørg for at du er i
master
-branch-en. -
Trykk på knappen som viser
Fetch origin
øverst i midten av skjermen. Vent til dataene er lastet ned. Det skal stå når du sist gjorde dette. -
Så trykker du
ctrl + shift + P
for å pull-e dataene til din lokale versjon, altså å slå sammen dinmaster
med den oppdaterte fellesmaster
-branch-en. Alternativt finner duRepository
i menylinjen ogPull
under denne. -
Til slutt vil du push-e denne oppdaterte versjonen til din fork på nettet med
ctrl + P
. Alternativt finner duRepository
i menylinjen ogPush
under denne.
- Guide for å bidra til LKKs oppgavesamling
- Git
- Bygge oppgavesidene lokalt
- Tekstredigeringsverktøy
- Lage oppgaver
- Lærerveiledninger
- Undervisning
- Avansert