Git++

IT1901 Fall 2023 - 2nd lecture

Agenda

  • Administrative issues

  • Git

  • Gitlab

  • Demo

  • 1st individual deliverable

  • Summary

Administrative issues

Groups

  • fill the form to be assigned to a group

  • https://s.ntnu.no/it1901groups

  • deadline: Torsdag, 31. august 16:00

  • will announce the groups in week 36

  • 70 % of grade is given by groupwork

Referansegruppe

  • Trenger 3-5 medlemmer til referansegruppe i faget

  • Mulighet til å påvirke kurset og forbedre kurset for de som skal ta det senere år

  • 3 møter; uke 5, uke 9 og etter kursslutt

  • Ca. en time per møte

  • Meld deg i pausen om du er interessert!

  • If until next week there are no volunteers we will randomly select 5 students

Approaching Deadlines

  • Torsdag , 31. august 16:00

    • Fill the group form

  • Torsdag 7. september / 18:00

    • 1st individual deliverable

Getting help

  • ask your group TA

  • piazza channel - coming up next week

  • technical helpdesk - coming up next week

Git

What is git

Git is a source code management system that is lightweight, reliable, fast and fully distributed. On top of that it is free and open source. Git was initially authored by Linus Torwalds and emerged from his troubles encountered while trying to manage the contributions to Linux kernel.

Kildekodehåndtering

  • lagring av kode

  • sporing av endringer

  • versionering

  • distribusjon

git

git local remote repo

git

  • sporing og deling av kodeendringer i såkalte repo (repository)

  • både sentrale og lokale repo har all endringshistorikk

  • initiell kopi hentes ved å kloning (clone)

  • endringer (i filer) registreres i commits

  • commits deles med andre ved å dytte (push) til en server

  • andre kan da dra (pull) endringene inn i lokalt repo

4 repo-"kopier"

  • originalen (origin), hentet fra server (pull)

  • arbeidsområdet (working directory), lokale filer som kan være endret

  • indeksen (staging area eller index), endringer du har lagt til med (add)

  • lokalt repo, endringene du har commitet (commit)

4 repo-"kopier"

git repo copies

repo-kommandoer

git repo copies
git repo commands

Typisk sekvens

  • git pull (eller clone første gang) - henter ned endringer fra serveren

  • gjør egne endringer

  • git status - viser hva som er endret

  • git add <fil eller mappe> - legger endringer til fremtidig commit

  • git commit -m <melding, m/oppgavenummer> - registrerer all endringene (lagt til med add)

  • git pull - henter andres endringer, i tilfelle konflikt

  • git push - deler endringer med andre via serveren

Forgreining (branching)

  • greiner (branches)

    • sporer egne utviklingstråder

    • gjør jobbing i parallell ryddigere

  • sammenslåing (merging)

    • en (hoved)grein slås gjerne sammen med en annen, når den andre er ferdig (nok)

    • etter sammenslåing, så deles gjerne resultatet med andre

    • andre henter så ned for å være oppdatert

git branching

Gitlab

What is GitLab

Is a complete devops solution that does repository hosting, issue tracking, agile planning, code review, ci/cd and more. It started as an open source project and it still has a community edition which is free and open source

Demo

Summary

Next week

  • more on git and gitlab

  • talk about containers for development

Norwegian University of Science and Technology