1 of 16

Versionskontrolle mit Git

Der Workflow für das 21. Jhd.

Dr. Katrin Leinweber (Projektmitarbeiterin für wissenschaftliche Software)

13. November 2018

LibraryCarpentry.org // EvaMariK.GitHub.io/2018-11-12-cologne

Seite 1

2 of 16

Über mich: NaWi & IT (ORCiD.org/0000-0001-5135-5758)

    • Studium: Life Science, sowie Arktische Ökologie & Geologie
    • 3 Jahre technischer Kundendienst bei
    • Doktorarbeit: Biofilmforschungsmethoden (GitHub.com/katrinleinweber/PhD-thesis)
      • Kopplung von Licht- & Elektronenmikroskopie (doi.org/6v7)
      • Roboterisierung & Data-Pipelining für einen Biofilmassay (doi.org/f8whdn)
    • 7 Quartale Pharma-LIMS-Design- & -Implementierung
    • @TIB seit Nov’17 zur Unterstützung wissenschaftlicher Softwareprojekte
      • Software Carpentry Instructor & Maintainer der r-novice-inflammation-OER seit Feb’18
      • im Library Carpentry Curriculum Advisory Committee seit Aug’18

Seite 2

3 of 16

Über mich: NaWi & IT (ORCiD.org/0000-0001-5135-5758)

    • Life Science an , sowie Arktische Ökologie & � Geologie an
    • 7 Quartale Design & Implementierung eines Pharma-Laborinformations- & Managementsystems (LIMS)
    • @TIB seit Nov’17 zur Unterstützung wissenschaftlicher Softwareprojekte => Schulungen
    • Software Carpentry Instructor & Maintainer der r-novice-inflammation-OER seit Feb’18
      • im Library Carpentry Curriculum Advisory Committee seit Aug’18
      • in der Zeit: für Datenauswertung; , & zum Schreiben
    • technischer Kundendienst bei
    • Doktorarbeit: Methodenentwicklung für Biofilmforschung
      • Kopplung von Licht- & Elektronenmikroskopie doi:10.7717/peerj.858
    • Roboterisierung & Datenauswertepipeline für einen Biofilmassay doi:10.1186/s12866-016-0676-9

Seite 3

4 of 16

Versionskontrolle: Was kann das?

    • Sync & Backup von Quellcode(dateien)
    • Strukturierung der Zusammenarbeit
    • Unendliches, atomares Rückgängig-machen
    • Reisen in die Vergangenheit�(des Projektes)

=> Assistenzsystem für digitale Projekte

Margaret Hamilton (Public Domain via Wikimedia.org)

Ryan Gosling in “First Man” (2018, photo: Daniel McFadden/Universal Pictures via gadgets.NDTV.com)

Kirsten Dunst & Octavia Spencer in “Hidden Figures” (Warner Bros)

Seite 4

5 of 16

Versionskontrolle: Was ist das?

    • seit Apr’05 für Linux-Kernel-Entwicklung�GitHub.com/git/git/commits/e497ea2a
      • heute: Rückgrat von Softwareentwicklung, -qualitätskontrolle, deren Automatisierung, sowie des Projektmanagements
    • Assistenzsysteme für Softwareentwicklung
      • Sync & Backup von Quellcode(dateien)
      • Strukturierung der Zusammenarbeit
      • Unendliches, atomares Rückgängig-machen
      • Reisen in die Projektvergangenheit

Margaret Hamilton mit AGC-Quellcode

濱野 純�(Junio Hamano)

Linus Torwalds

+ viele mehr:

GitHub.com/git/git/

graphs/contributors

Seite 5

6 of 16

Wieso, weshalb, warum Versionskontrolle, speziell Git?

Konzept,�Denk- & Herangehensweise

Software, die �es implementiert

Seite 6

7 of 16

Versionskontrolle / Git: Wieso, weshalb, warum?

    • Unendliches, atomares Rückgängig-machen
    • Reisen in die Projektvergangenheit

    • Nachvollziehbarkeit (digitales Laborbuch)

Seite 7

8 of 16

Versionskontrolle / Git: Wieso, weshalb, warum?

    • Unendliches, atomares Rückgängig-machen

    • Reisen in die Projektvergangenheit

    • strukturierte Zusammenarbeit (auch asynchron & offline)

neuer�branch

commits

pull/�merge request

Review

merge�(Integration)

Seite 8

9 of 16

Versionskontrolle, Git: Wieso, weshalb, warum?

    • Unendliches, atomares Rückgängig-machen
    • Reisen in die Projektvergangenheit
    • strukturierte Zusammenarbeit (auch asynchron & offline)
    • Backups bei allen Projektteilnehmer*inne*n

    • Gefahr-, Sorgen- & Erlaubnis-freies Experimentieren in eigenen forks & branches

    • „Da spielt die Musik“

Seite 9

10 of 16

Das Git-Arbeitsdreieck

Pfeile: Kopieren von diffs / Änderungen

Git(Hub/Lab) o.a. Plattform

fremdes Repo

eigener Fork

pull/merge request

forken” (anfangs)

clone (anfangs)

push (oft)

lokaler Klon

fetch & pull (oft)

Namenskonvention für remotes (Quellen des lokalen Klons)

“origin” = Schreibrechte

keine Schreibrechte = “upstream”

online-edits & -commits

propose change

Seite 10

11 of 16

Git als Wachhund für Ordner

Steht im Commit!

Ach, das?

OK!

© Fondation Hergé / Moulinsart

Hey! Warum änderst Du das?

Von Git überwachter Order

sichere, begründete Speicherung

Änderungsansicht (“diff”)

Seite 11

12 of 16

Gits Ökosystem: das größte & für alle was dabei!

Alle Funktionen, aber gewisse Lernkurve

(abflachbar mit gitless.com, u.a.)

Weniger, essentielle Funktionen,

daher leichter zu lernen

Web-Apps �(fremd- oder selbst-gehosted)

Kommandozeile

grafische Oberflächen

git-scm.com/downloads/guis

GitUp

commits zwischen den Repos syncen

= Arbeit & Backups (ver)teilen

Seite 12

13 of 16

Gemeinsame Demo & Übungen in GitHub Desktop & GitHub.com

Seite 13

14 of 16

Was finden SIe praktisch an Git?

Wo könnten Sie Git in Ihrer Arbeit einsetzen?

Seite 14

15 of 16

Zusammenfassung: Versionskontrolle &

      • Rückgrat der modernen, digitalen Projektentwicklung & -QK
        • bestens für Textdateien & Quellcode, aber prinzipiell für alle Dateitypen nutzbar
        • Kommandozeilenwerkzeug, aber’s gibt viele Git-SCM.com/downloads/GUIs
      • Umdenken: Dokumente in unabh. Versionen => Dateien mit Änderungsstapel im Repository
        • Diff-Ansicht & staging area erlauben eigen-Review & logische Zusammenstellung von Änderungen
        • commit message = beschreibender/erklärender Kommentar für’s eigene, zukünftige Ich & Andere
        • keine heimliche Manipulation von Autor*in, Zeitstempel, Diff/Änderungen, message oder Prüfsumme
      • GitHub.com & GitLab (.com & auf Institutsserver) bieten viele Hilfswerkzeuge für Projektmanagement
        • “Arbeitsweise für 21. Jhd”: Flow = in forks & branches arbeiten, in pull/merge requests diskutieren

Seite 15

16 of 16

Danke für Ihre / Eure Aufmerksamkeit!

Kontakt für Hilfe & Beratung:

Katrin.Leinweber@TIB.eu (0511 762 14693)

@katrinleinweber auf GitHub & GitLab.com

Creative Commons Namensnennung 3.0 Deutschland http://creativecommons.org/licenses/by/3.0/de

Seite 16