H9: Werken op GitHub

Hub, GitHub, Hub!
https://myoctocat.com/build-your-octocat/
1 / 23
volgende
Slide 1: Tekstslide
ICTMBOStudiejaar 4

In deze les zitten 23 slides, met tekstslides.

Onderdelen in deze les

Hub, GitHub, Hub!
https://myoctocat.com/build-your-octocat/

Slide 1 - Tekstslide

It's a-me!

Slide 2 - Tekstslide

Als je maar lang genoeg xkcd strips toe blijft voegen aan je slides vindt vanzelf iemand het grappig, toch? Toch?
Leerdoelen
  • Leren over verschillende "workflows"
  • Branching toepassen op GitHub
  • Pull requests om te mergen
  • Werken met issues door commits te doen

Slide 3 - Tekstslide

Benadruk dat wat we gaan leren in principe van toepassing is op GitHub, maar dat het net zo goed kan op GitLab, gitea, [jouw git server hier]
Commandline
Vorige keer werkten we met de commandline, maar nu mag je git doen op de manier die het comfortabelst voor je is.

Slide 4 - Tekstslide

Hackermannnn

Als iemand weet waar dit plaatje van is mag je ze een aai over hun bol geven.
"Workflows"
De workflow is de manier waarop je op een git-server samenwerkt aan een project met meerdere mensen. De manier waarop je samen hebt afgesproken om issues op te lossen.

Slide 5 - Tekstslide

Deze slide heeft geen instructies

Centralized
Iedereen werkt in dezelfde branch.
Je commit lokaal, en als er changes zijn remote moet je eerst "rebasen"

Slide 6 - Tekstslide

Deze slide heeft geen instructies

https://www.atlassian.com/git/tutorials/comparing-workflows

Slide 7 - Tekstslide

Deze slide heeft geen instructies

Centralized
Merge conflicts every day all day.
Iedereen zit elkaar constant in de weg.
Alleen werkbaar als je alleen of in een heel klein team werkt.
Of als je in ieder geval niet op dezelfde tijden werkt.

Slide 8 - Tekstslide

Even benadrukken dat deze oplossing kwalitatief uitermate teleurstellend is.
Forking
Iedereen die iets wilt toevoegen maakt een "fork" van de volledige repository.
Changes terug naar de originele repository moeten dan met een pull request.

Slide 9 - Tekstslide

Leuk grapje maken over een FORKING STRATEGIE, klinkt vulgair als je het in een brits accent doet.
https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow

  • Handig om samen te werken met mensen die je niet kent
  • Wel wat extra werk

Slide 10 - Tekstslide

Even checken of iedereen het verschil weet tussen een fork en een clone.
Forking
Vooral handig voor grote changes aan open source projecten.
Minder handig voor kleine changes aan projecten in eigen beheer.

Slide 11 - Tekstslide

Deze slide heeft geen instructies

Feature branching
Iedere nieuwe feature of issue wordt gemaakt in zijn eigen branch.
Iedere branch wordt dan weer teruggevoegd naar de main/master.

Slide 12 - Tekstslide

Dit is een vrij gebruikelijke in bedrijven.
Deze gaan we vandaag mee oefenen!
https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow

Slide 13 - Tekstslide

Deze slide heeft geen instructies

Voordelen:
  • Je commit graph komt er mooi uit te zien
  • Kan goed samenwerken met veel mensen in één team
  • Geen gedoe met extra repositories
  • Weinig rebases nodig
Nadelen:
  • Elk issue wordt een branch!
  • Veel merges, dus mogelijk ook veel merge conflicts.
  • Je commit graph komt er ingewikkeld uit te zien

Slide 14 - Tekstslide

Deze slide heeft geen instructies

Issue closing
https://github.blog/news-insights/product-news/closing-issues-via-commit-messages/

"Closes #42"
"Fixes #510"
"Resolves #12"

Slide 15 - Tekstslide

Deze slide heeft geen instructies

Git feature branching
We gaan wat oefenen met feature branching, en eventueel de merge conflicts daaruit volgen.

Slide 16 - Tekstslide

Deze slide heeft geen instructies

Stappenplan:
  1. Maak een issue
  2. Maak een nieuwe feature branch voor die issue
  3. Fix de issue in je code in die branch
  4. Commit en push naar branch met message "Fixes #nr"
  5. Maak een pull request voor die feature branch.
  6. ???
  7. Profijt

Slide 17 - Tekstslide

Deze slide heeft geen instructies

Slide 18 - Tekstslide

Deze slide heeft geen instructies

OF!

Slide 19 - Tekstslide

Deze slide heeft geen instructies

Pull request

Slide 20 - Tekstslide

Deze slide heeft geen instructies

Slide 21 - Tekstslide

Deze slide heeft geen instructies

Niet forken!!!!

Slide 22 - Tekstslide

Deze slide heeft geen instructies

Opdracht!
Werkblad op itsl
Repo template copy
4x Issues aanmaken
4x Feature branches maken
4x Pull requests aanmaken
4x Pull requests mergen
IN DIE VOLGORDE. Eerst vier issues, dan vier branches, etc.

Slide 23 - Tekstslide

Deze slide heeft geen instructies