Commit d3574086 authored by Axel Dürkop's avatar Axel Dürkop
Browse files

first commit

parent b755fc0a
Loading
Loading
Loading
Loading

praese.md

0 → 100644
+328 −0
Changes for praese.md: 328 added lines, 0 removed lines.
Original line number Diff line number Diff line
---
title: Einführung in GitLab
---

# Einführung in GitLab   

Axel Dürkop, "Modernes Publizieren"  
**Workshop an der TUHH, 25. April 2019**

---

# Agenda

- Einführung in das Konzept von Git[Lab|Hub]
- GitLab in der Produktion digitaler Artefakte
- GitLab im Projektmanagement

---

# Einführung

+++

## Das "Git" in GitLab

- Verteiltes Versionskontrollsystem [Git](https://git-scm.com/)
- 2005 von [Linus Torvalds](https://de.wikipedia.org/wiki/Linus_Torvalds) entwickelt
- Hauptzweck: "Tracking" textbasierter Dateien
- Git lernen: [Try Git!](https://try.github.io/)

+++

## GitHub

- "Umschlagplatz" für Code, Texte und Daten
    - Code: https://github.com/collections/open-source-organizations
    - Daten: https://github.com/collections/open-data
    - Science: https://github.com/showcases/science
    - Texte: https://bundestag.github.io/gesetze/

+++

## GitLab

- Verteilte Versionskontrolle von [GitLab Inc.](https://about.gitlab.com/about/) zum [Selberhosten](https://about.gitlab.com/installation/)
- ermöglicht Workflow von der Idee zum fertigen Produkt
- An der TUHH: <https://collaborating.tuhh.de/>
- entstanden im Experimentierfeld der Hamburg Open Online University (HOOU)
- eingesetzt im Projekt "Modernes Publizieren"

---

# Produktion

+++

## Pipelines mit Docker Images

- Docker: Virtualisierung von Computern
- Verschiedene Projekte im Rahmen der HOOU wurden damit realisiert
    - [BiotechAll](https://biotechall.rz.tuhh.de/)
    - [Hop-on](https://hopon-newcomers.com/de/reader/index.html)
    - [tekethics Booklet](https://collaborating.tuhh.de/hoou/tekethics-booklet)
    - [Einführung in die Informationstechnik](https://www3.tuhh.de/itbh/lehre/inf1-sose2019/)

---

# Hands-on!

+++

## GitLab von außen

https://collaborating.tuhh.de/

- Projekte
- Benutzer_innen
- Gruppen

+++

## GitLab von innen

+++

## Registrieren und Anmelden

https://collaborating.tuhh.de/

- keine Zugangsbeschränkung an der TUHH
- kein Funktionsaccount nötig
- internationale Kollaboration möglich
- **Einschränkung:** Nicht-TUHH-Mailadressen dürfen keine eigenen Projekte anlegen.

+++

## Profil und Einstellungen

- **Profile:** Avatar, Bio und verbundene Accounts
- **Account:** Änderung des Benutzernamens
- **Emails:** Zusätzliche Emails
- **Notifications:** Einstellen der Dichte von Meldungen
- **Preferences:** Aussehen der Oberfläche

+++


## Projekt anlegen

- individuelle Projekte aus dem professionellen Kontext (Daten, Code, Text)
- **Achtung!** *Visibility Level* entscheidet über Sichtbarkeit nach außen

+++

**Aufgabe**

Legen Sie ein eigenes Projekt in Ihrem Account an!

+++

## Projekteinstellungen - General

- **Permissions:** *Welche* Bereiche des Projekts werden genutzt? *Wer* darf die Bereiche nutzen?
- **Advanced:** umbenennen, übertragen, löschen

+++

## Projekteinstellungen - Members

- Hinzufügen von Beitragenden
- Zuweisung von Rollen

+++

## Exkurs: Markdown

https://dillinger.io/

- einfache Auszeichnungssprache für Texte
- kann mit HTML und LaTeX angereichert werden
- weit verbreitet im Netz
- kann mit [Pandoc](http://pandoc.org/) in zahlreiche Zielformate gewandelt werden

+++

## Weiter: Arbeiten im Projekt

- Hinzufügen einer README.md
- Beschreibung des Projekts
- Beispiele guter READMEs in namhaften Projekten bei GitHub

---

## Projektmanagement

+++

## Gruppen

- Mit Gruppen in GitLab können Teams gebildet werden
- Gruppen können Untergruppen (*subgroups*) haben
- Projekte können in/für Gruppen angelegt werden

+++

## Erste Schritte Projektmanagement

- Projektdefinition
- Projektplanung
    - Strukturierung des Projekts
    - Sammlung und Darstellung von Aufgaben/Arbeitspaketen
    - Aufgabenverteilung

+++

## Das Wiki

- Jedes Projekt hat ein **Wiki**
- Inhalte im Wiki werden mit Markdown notiert
- Das Wiki ist ebenfalls ein Git-Repository und bietet alle Vorteile der dezentralen Bearbeitung
- Wikis eignen sich sehr gut zur
    - Informationssammlung
    - Projektdokumentation
    - Hacks zur (fast) finalen Dokumentenerstellung mit *pandoc*, *GitBook* u.ä.

+++

## Issues

- Festhalten von Arbeitsaufträgen, User Storys, Fehlerberichten, Kundenwünschen etc.
- Diskussion über die Details
- Entsprechend der Idee von *User Storys* können mit Checkboxen *Tasks* definiert werden. Diese beschreiben die konkreten Aufgaben, die zum Einlösen der Story erledigt werden müssen.

+++

## Label

- Label sind frei definierbare "Etiketten" für Issues und ermöglichen übergreifende Ordnungskonzepte
- Aus Labeln können Listen im Board erstellt werden

+++

## Das Board

- Jedes Projekt hat ein Board
- sinnvolle Strukturierung von Issues z.B. gemäß einer Projektmanagementmethode (Kanban, Scrum o.ä.)

+++

## Zuweisung von Issues

- Issues können entsprechend der Aushandlung zwischen den Beitragenden zugewiesen werden
- Issues können an einen *Milestone* oder eine individuelle Deadline gebunden werden
- Issues können gelabelt werden

+++

# Kontakt 

**Email**: axel.duerkop@tuhh.de

**Mastodon**: https://scholar.social/@xldrkp

**GitLab**: https://collaborating.tuhh.de/users/xldrkp/projects

+++

## Hack[a|er]space

https://community.tuhh.de/c/hackerspace

**jeden Mittwoch von 14:00 bis 17:00 Uhr**
im ITBH (Gebäude Q)

- Vorträge
- Beratung
- Experimentieren
- Wissen und Erfahrung teilen
- *Own Your Brought Device (OYBD)*

+++

## Nutzungsbedingungen 

<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons Lizenzvertrag" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />Diese Präsentation von Axel Dürkop (ITBH an der TUHH) ist lizenziert unter einer <a rel="license" href="https://creativecommons.org/licenses/by/4.0/deed.de">Creative Commons Namensnennung 4.0 International Lizenz</a>.

Nutzen Sie diese Präsentation gern im Rahmen der genannten Lizenz, um auch anderen die Vorzüge von GitLab näher zu bringen.

---

# Reserve

+++

## Branches

- Branches sind eigenständige Entwicklungslinien
- Ergebnisse aus Branches können in andere Branches **gemergt** werden
- Es ist sinnvoll, **Branches aus Issues** zu erstellen
- Branches sollten nach dem Mergen gelöscht werden

**Branches kosten nichts und können nach Herzenslust jederzeit auch zum Experimentieren und Spielen erstellt werden**

+++

## Merge Requests

- **Merge Requests (MR)** sind zu verstehen als  
*Antrag auf Übernahme von Beiträge aus einem Quellbranch in einen Zielbranch*
- MR können
    1. innerhalb eines Projekts von einem Branch zu einem anderen gestellt werden.
    1. von einem geforkten Projekt (Kopie) auf das Quellprojekt (Original) gestellt werden.
- MRs haben großes Potential für die Qualitäts-kontrolle durch die Entwicklergemeinschaft

+++

## Merge

- **mergen** bezeichnet den Vorgang, einen *Commit* mit einem anderen zu verschmelzen

+++

## Forks

Als **Fork** wird die Kopie eines Repositorys bezeichnet.

+++

**Aufgabe**  

Forken Sie das Repository dieser Präsentation in Ihren Account!

+++

## Review Apps

GitLab bietet die Möglichkeit, auf Basis von Branches so genannten **Review Apps** zu generieren. Hierbei kommen Virtualisierungstechniken wie [Docker](https://de.wikipedia.org/wiki/Docker_(Software)) zum Einsatz.

**Review Apps** sind (vollständige) Anwendungen/Artefakte auf Basis von Branches. Sie dienen dazu, dem Kunden bzw. dem Team eine Vorschau auf die Implementierung einer Funktion oder Anforderung zu geben.

+++

## GitKraken

- [grafischer Client](https://www.gitkraken.com/) zur lokalen Verwaltung von Dateien
- Anbindung an entfernte Git-Dienste wie GitHub, GitLab, Bitbucket u.a.

+++

## Grundbegriffe

|               |                                          |
|---------------|------------------------------------------|
| Projekt       | Organisationsheinheit                    |
| Repository    | Ort für Dateien                          |
| Issue         | Thema                                    |
| Commit        | Speicherung                              |
| Branch        | Parallele Entwicklungslinie              |
| Merge Request | Antrag auf Zusammenführung von Beiträgen |
| Merge         | Zusammenführung von Beiträgen            |

+++

## Exkurs auf Wunsch: Pandoc

https://pandoc.org/

Umwandlung zahlreicher Quell- und Zielformate ineinander