Nedlastningsfiler og instruksjoner for forskjellige OS finner du her: https://git-scm.com/downloads Vi anbefaler og oppfordrer at alle som er på Windows bruker git bash som følger med i Windows-installasjonen. På Linux og Mac holder det med den innebygde terminalen.
Følg stegene her dersom du ikke allerede har gjort det før kurset: https://help.github.com/articles/checking-for-existing-ssh-keys/
Hvis ikke du gjør dette, vil du måtte skrive inn passordet ditt hver gang du gjør noe mot GitHub.
Kjør de to kommandoene under, med ditt navn og e-post:
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
Åpne terminalen eller git bash. Gå til mappen du ønsker å ha prosjektet ditt i ved å bruke:
cd Path/Til/Din/Mappe
Her kan du lage en ny mappe:
mkdir git-kurs
Gå så inn i denne mappen:
cd git-kurs
Du kan liste innholdet i mappen ved å skrive inn ls
i terminalen. Nå er mappen tom, så ingenting vil dukke opp.
Mens du er i mappen du nettopp lagde, skriv inn kommandoen under for å initialisere et tomt git-repo.
git init
Det som skjer, er at en .git
mappe blir lagt til i mappen din. Denne kan du se dersom du kjører kommandoen ls -A
. -A
-flagget gjør at også skjulte filer (som starter med et punktum) blir vist.
Åpne mappen du er i din favoritteditor. Dersom du ikke har en, kan du skrive vim ditt-filnavn
.
Dette vil åpne en editor i terminalen din som heter Vim, hvor du kan redigere en fil ditt-filnavn
. Skriv inn i
(for insert mode), skriv inn noen greier og avslutt vim ved å trykke på Esc
, og deretter skrive inn :wq
etterfulgt av enter.
Dersom du nå kjører
git status
vil du forhåpentligvis få opp filen du nettopp lagde under "Untracked files".
For å legge til denne i "Staged" kjør:
git add ditt-filnavn
git status
igjen bør vise at dette akkurat har skjedd.
Nå er denne filen i "Staged", det betyr at den vil bli med i din neste commit. Kjør:
git commit
Du vil nå mest sannsynlig komme inn i Vim, trykk på i
(for insert mode) før du begynner å skrive øverst i filen. Dette vil bli commit-meldingen din. Dette er den aller første commiten i dette repoet, ofte skriver man da bare Initial commit
, men du kan skrive hva du vil. Når du er ferdig, kom deg ut av Vim ved å trykke på Esc
, og deretter skrive inn :wq
og så Enter.
Tips! Dersom du bare har tenkt å skrive en kort commit-melding, og ingen kommentar under, kan du også skrive:
git commit -m "Din melding"
Da vil du ikke gå inn i Vim, men bare lage commiten direkte.
Grattis, da bør din første commit være på plass! Du kan dobbeltsjekke med git status
at det ikke er noen endringer i repoet ditt nå.
For å vise hvilke commits du har på denne branchen (vi kommer til branching snart), kjør
git log
Her bør commiten du lagde i forrige oppgave listes opp. Nå har du bare èn, men når du får flere vil de vises i en liste. Den øverste vil være den nyeste. Da kan du scrolle eller bruke piltastene eller space for å bevege deg opp og ned i loggen.
Har du problemer med å komme deg ut av loggen, skriv q
.
Åpne filen du lagde tidligere, anten i din editor eller gjennom vim ditt-filnavn
. Legg til og kanskje fjern noen linjer med innhold og lagre.
Dersom du nå kjører:
git diff
Bør forandringene du gjorde komme opp i terminalen.
Kjør
git status
Filen din burde nå ligge under "Modified".
git add
og git commit
filen slik som i Oppgave 3.
Tips! Du trenger ikke å legge til en hel fil i Staged, med kommandoen
git add -p .
vil du kunne velge ut hver enkelt linje du har forandret. Skriv innh
for å få en beskrivelse av funksjonene i git add -p
Når du er logget inn på GitHub.com, gå til hovedsiden og trykk på "New" på høyre side. Du kan også gå til profilen din > Repositories > New Repository.
Du trenger ikke gjøre noen store forandringer. Gi repoet navnet "git-kurs" og gjør det Private hvis du ikke vil at alle skal kunne se det.
Du vil nå legge til repositoryet du lagde på GitHub som en remote lokalt på maskinen din. Når et GitHub-repository er lagt til som remote, betyr det at du kan pushe til det, og pulle fra det.
git remote add origin https://github.com/ditt-brukernavn/git-kurs
Test om det fungerer ved å pushe det du har comittet så langt til GitHub:
git push origin master
Sjekk GitHub-repoet ditt, har commitene dine dukket opp?
La oss si at du vil gjøre noen endringer, men ikke er sikker på om du vil ha dem inn i master
med en gang. Lag en ny branch ut fra master, som du kaller min-branch
:
git branch min-branch
Dersom du bare skriver git branch
nå, bør det komme opp to brancher, master
og min-branch
. Bytt til den nye branchen din:
git checkout min-branch
Tips! Dersom du vil gjøre dette i én kommando, kan du kjøre:
git checkout -b min-branch
Dette vil både lage og bytte til den nye branchen.
Dersom du sjekker loggen din med git log
, vil denne vere helt lik den i master, det er fordi du nettopp har laget en ny branch med utgangspunkt i master.
Vi skal nå gjøre en endring på min-branch
, for så å gjøre en endring på samme sted på master
. Så skal vi prøve å merge de to branchene, og løse en merge conflict.
Begynn med å endre noe i filen din på min-branch
. Gjerne på den første linjen. git add
og git commit
dette.
Bytt så over til master
ved å kjøre git checkout master
.
Hvis du kjører git log
nå, vil committen du nettopp lagde på min-branch
ikke ligge der, det er fordi denne naturligvis ligger på min-branch
.
Gjør en endring øverst i filen din på master også. git add
og git commit
dette.
Nå kan du prøve å kjøre
git merge min-branch
Da vil git prøve å flette endringene i min branch
inn i master.
Ettersom endringene dine skjedde på samme sted i filen i de to branchene, vil ikke git forstå hva som skal gjøres. Du vil få opp en melding om at du har en merge conflict.
Åpne filen din, den vil da se cirka sånn ut øverst:
<<<<<<< HEAD
Endring i master
=======
Endring på min-branch
>>>>>>> min-branch
...
Nå må du selv få filen til å se ut slik du vil at den skal være etter mergen. Fjern linjene som starter med <<<
, >>>
og ==
.