Commit 5312a8fe authored by Hallvard Trætteberg's avatar Hallvard Trætteberg
Browse files
parents b6f2ab14 a5f4f0a0
Pipeline #138283 passed with stages
in 4 minutes and 31 seconds
......@@ -8,6 +8,8 @@ link:slides/01-course-intro.html[Lysarkene] gir en oversikt over organiseringen
include::{sourcedir}/gitpod.adoc[leveloffset=+2]
link:slides/02-git-plus-plus.html[Lysarkene] gir en oversikt over git, gitlab og gitpod
== 2020
=== Programvareutvikling
......
= Git++
:customcss: slides.css
:icons: font
:includedir: revealjs/includes/
:LECTURE_TOPIC: git++
:LECTURE_NO: 2nd lecture
include::{includedir}header.adoc[]
[.smaller-80][.center-paragraph]
IT1901 Fall 2021 - {LECTURE_NO}
== Agenda
[%step]
- Administrative issues
- Git
- Gitlab
- Demo
- Gitpod
- 1st individual deliverable
- Summary
[background-color = "#124990"]
[color = "#fff6d5"]
== Administrative issues
== Groups
- fill the form to be assigned to a group
- https://s.ntnu.no/it1901groups
- deadline: Fredag, 27. august 19:00
- will announce the groups on next Wednesday (September 1st)
== 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
- Friday 27th of August by 19:00
** Fill the group form
- Friday 10th of September by 16:00
** 1st individual deliverable
** group contract
[background-color = "#124990"]
[color = "#fff6d5"]
== 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.
include::{includedir}scm_content.adoc[]
[background-color = "#124990"]
[color = "#fff6d5"]
== Gitlab
== What is GitLab
Is a complete devops solution that does reposiitory 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
[background-color = "#124990"]
[color = "#fff6d5"]
== Demo
[background-color = "#124990"]
[color = "#fff6d5"]
== Gitpod
include::{includedir}footer.adoc[]
\ No newline at end of file
......@@ -5,11 +5,17 @@
* versionering
* distribusjon
[.grid-left-right-50-50]
== `git`
[.smaller-60]
[.area-left]
image::../images/git-local-remote-repo.png[]
== `git`
[.smaller-80]
* 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)
......@@ -17,26 +23,22 @@
* commits deles med andre ved å _dytte_ (push) til en server
* andre kan da _dra_ (pull) endringene inn i lokalt repo
[.area-right]
image::../images/git-local-remote-repo.png[]
[.grid-left-right-50-50]
== 4 repo-"kopier"
[.smaller-60]
[.area-left]
* 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`)
[.area-right]
image::../images/git-repo-copies.png[]
== 4 repo-"kopier"
image::../images/git-repo-copies.png[width="400px"]
== repo-kommandoer
image::../images/git-repo-copies.png[width="400px"]
image::../images/git-repo-commands.png[width="500px"]
image::../images/git-repo-copies.png[width="300px"]
image::../images/git-repo-commands.png[width="400px"]
== Typisk sekvens
......@@ -64,57 +66,4 @@ image::../images/git-repo-commands.png[width="500px"]
[.right]
image::../images/git-branching.png[width="200px"]
== Sekvens m/forgreining
[.smaller-80]
* `git pull` - henter ned endringer fra serveren
* `git checkout -b <navn på (ny) grein>` - lager ny grein, med utgangspunkt i den du jobber med
* gjør egne endringer
* `git add ...` og `git commit ...` - registrerer all endringene
* `git checkout master` - bytter til hovedgrein
* `git merge <navn på grein>` - slår annen grein (den nye) sammen med denne (hovedgreina)
* ...
== Eclipse-støtte for git
[.smaller-60]
* Egne Eclipse-tillegg - JGit (git-impl) og EGit (UI)
* Git Repositories-panel - oversikt over repo
** klone repo fra server eller registrere lokalt repo
** utføre `pull` og `push`
** utføre `checkout` inkl. lage ny grein
** ...
image::../images/git-repositories-view.png[height="200px"]
== Eclipse-støtte forts.
[.smaller-60]
* Git Staging - statusoversikt
** filer i arbeidsområdet som er endret
** filene i indeksen
** legge til (`add`) eller fjerne (`remove`) fra indeksen
image::../images/git-staging-view.png[width="800px"]
== Endringsforespørsler
[.smaller-60]
* en `pull`/`merge`-forespørsel (request) brukes for mer formell godkjenning av endringer
** Pull Request er github-termen, mens Merge Request brukes i gitlab
* brukes ofte for å inkludere endringer utenfra, f.eks.
** utviklere utenfor kjerne-teamet
** brukere av åpen kildekode som har fikset feil
* forenkler administrasjon av åpne prosjekter
== PR/MR-prosedyre
[.smaller-60]
* (utenforstående oppretter kopi på egen server)
* lager en grein for endringene og utfører dem lokalt
* i stedet for å slå sammen med egen hovedgrein
** `push` grein til egen server
** lag en `pull`/`merge`-forespørsel (PR/MR), som (potensielt) kan inkluderes i hovedgreina
** UI for dette finnes på github/i gitlab
** forespørselen får en egen dialog/diskusjonstråd
** en utvikler med rettigheter kan så godkjenne evt. avslå forespørsel
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment