Git crash course - en hurtig guide 

Git er langt det mest udbredte versions styringsværktøj for programmører. Der findes en del grafiske værktøjer, men min erfaring er at man altid ender med at bruge kommandolinjen på et eller andet tidspunkt. Derfor kan man lige så godt lære at kende kommandoerne. Så her er en hurtig introduktion der lærer dig alt det basale du har brug for at vide.

Det er nemmest at starte med at oprette en konto hos GitHub.com (gitlab.com kan også bruges) som du så kan arbejde med. Når du har oprettet kontoen skal du skal lave et ny repository (husk at sætte det til at være privat).

Github new repo

Derefter skal du downloade og installere git fra https://git-scm.com/downloads

Her har jeg lavet et tomt repository der hedder minKode der har fået adressen https://github.com/mshdk/minKode.git.

Derefter vil jeg starte med kommandoen:

git clone https://github.com/mshdk/minKode.git

Github new repo

Denne kommando vil oprette en mappe kaldet minKode der er koblet til dit git repository. Du kan nu begynde at oprette/placere de filer i mappen som du vil have versionsstyret. Man skal dog manuelt tilføje filer til git før de bliver sporet, det er ikke nok at de er i mappen. Det kan du gøre med følgende kommando:

git add filnavn

Så hvis jeg har en tekstfil der hedder artikel.txt vil jeg skrive “git add artikel.txt” og filen vil nu være overvåget af git.

Git add filnavn

Git fungerer ved at du har en lokal versions “database” på din computer som du først committer din kode til, derefter kan du “push’e” alle ændringer til den centrale server. Det kan være forvirrende men gør at du kan versionsstyre dine egne ændringer og først når du er helt færdig, dele det med dine kolleger ved at skubbe det til den centrale server.

For at starte skal du først committet til din lokale git, det gør du med kommandoen git commit “tekst om hvad der er ændret” så for eksempel:

git commit -m “tilføjet artikel”

Den vil så fortælle dig at den har committet en fil eller flere filer. Ideen med teksten er at du eller dine kolleger senere kan regne ud hvad ændringen går ud på.

Nu kan du så sende dine ændringer til serveren med git push.

git push

Dereffter kan du bruge kommandoen git status til at se status på dit repo:

Git status

Har fortæller den mig at jeg er up2date med serveren, men der befinder sig en fil kaldet billede.png i mappen som ikke bliver sporet af git. Hvis jeg vil tilføje den kan jeg gøre det med “git add billede.png” eller hvis jeg vil tilføje alle filer kan jeg bruge:

git add . (og det er et punktum til sidst i kommandoen)

Hvis jeg nu vil opdatere mine filer med ændringer på serveren (fx hvis jeg har ændret ting på en anden computer eller en kollega har gjort det samme) kan jeg hente de nyeste opdateringer med kommandoen “git pull”.

Git pull

Her kan jeg se at artikel.txt er blevet ændret.

Hvis jeg vil se en komplet liste af commits kan jeg skrive git log, så får jeg følgende:

Git log

Hvis jeg vil se de specifikke ændringer kan jeg skrive git log -p artikel.txt

Git log p

Her kan jeg se ændringerne imellem de to sidste commits. Linier der er tilføjet i nyeste commit er grønne og dem der er fjernet er røde. Du kan trykke q for at komme ud af kommandoen.

Hvis du ikke kan lide ændringerne i den nyeste commit kan du bruge kommandoen git revert HEAD

Git revert

Og nu kan du i loggen se at ændringerne er vendt om:

Git revert HEAD

Hvis en fil du har lavet ændringer i også er blevet ændret af andre får du følgende besked når du prøver at lave en pull.

Git push rejected

Start med at følge forslaget og skriv “git config pull.rebase” false og derefter prøv git pull igen:

Git rebase

Nu får du at vide at der er en konflikt i filen artikel.txt og hvis du bruger kommandoen git diff kan du se konflikten, øverst er nyeste commit på serveren (HEAD) og nederst din ændring:

Git diff

Den nemmeste måde at løse uoverensstemmelsen er at åbne filen i din editor og slette den ændring du ikke ønsker at beholde.

Hvis du på et tidspunkt får lavet rod i dine filer og egentligt bare gerne vil tilbage til sidste commit kan du bruge kommandoen git stash -u

Det vil gemme alle ændringer og sætte dine filer tilbage til sidste commit.

Hvis du senere får lyst til at se dine gemte ændringer kan du bruge kommandoen git stash list. Du kan så bruge kommandoen git stash pop til at gendanne nyeste stash eller git stash stash@{X} hvor X er tallet på den stash du vil genskabe.

En anden nyttig git ting er at ændre den tekst editor som git bruger. Som standard bruger git editoren “vim” der ikke ligefrem er intuitiv. Det nemmeste er at sætte din editor til nano, der er en kommandolinje editor men med overskuelige kommandoer. Det gør du med kommandoen git config –global core.editor “nano”

Git nano

Du kan også sætte visual studio code som editor, hvis du har den installeret. Det gør du med kommandoen git config –global core.editor “code –wait”