$30 off During Our Annual Pro Sale. View Details »

How To Commit: Nachvollziehbare Git Historien

How To Commit: Nachvollziehbare Git Historien

Dos and Don'ts beim Erstellen von Git Commits

Eines der Hauptfunktionen von Versionsverwaltungsprogrammen wie Git ist das Nachvollziehen von Änderungen, die man selbst oder die andere in dem Repository getätigt haben.

Diese Funktion ist allerdings nur so gut, wie es die Committer auch umsetzen. Commit-Messages wie "Aktueller Stand", wo tausende geänderte Zeilen vorhanden sind, sind nicht wirklich nachvollziehbar.

DIeser Talk gibt Tipps, Tricks und Hinweise wie man gute und nachvollziehbare (Git) Commits tätigt, worauf man achten sollte und wofür das ganze überhaupt gut ist.

Der Talk war als zum Teil als Diskussion mit Live-Elementen durchgeführt worden, sodass nicht jeder Inhalt auf den Folien zu sehen sind.

Sujeevan Vijayakumaran

November 03, 2018
Tweet

More Decks by Sujeevan Vijayakumaran

Other Decks in Technology

Transcript

  1. How To Commit: Nachvollziehbare Git Historien
    Sujeevan Vijayakumaran
    Twitter: @svijee
    Blog: svij.org
    3. November 2018

    View Slide

  2. XKCD
    xkcd.com/1296
    1

    View Slide

  3. Über den Talk
    • Weniger Git
    • mehr ’richtig Committen’
    • Warum, wieso, weshalb und wie!
    • Diskussion!
    2

    View Slide

  4. Versionsverwaltung mit Git
    • Zusammenarbeit im Team
    • Beitragen von Änderungen
    • Nachvollziehbarkeit von Änderungen
    3

    View Slide

  5. Was ist ein Commit?
    • Metadaten
    • Änderung im Quellcode
    • Commit-Message
    4

    View Slide

  6. Metadaten
    4

    View Slide

  7. Commit Metadaten?
    • Autor
    • Committer
    • Zeitstempel
    • Hinzugefügte/Entfernte Dateien
    5

    View Slide

  8. Commit Metadaten?
    6

    View Slide

  9. Änderung im Quellcode
    6

    View Slide

  10. Wie sollte die Änderung selbst sein?
    • So klein wie möglich
    • So groß wie nötig
    7

    View Slide

  11. Commit
    • Committe früh und oft!
    • Logische Änderung == ein Commit
    • „Aufräumen“ auch hinterher möglich (→ Rebase!)
    8

    View Slide

  12. git add -p & git rebase -i
    • Häppchenweise stagen mit git add -p
    • Commits nachträglich verändern mit git rebase -i
    9

    View Slide

  13. Commit-Messages
    9

    View Slide

  14. One Line Diff
    Gutes Beispiel:
    Chris Lamb, Debian Project Lead
    10

    View Slide

  15. Working, Working, Working ...
    Schlechtes Beispiel:
    11

    View Slide

  16. Schlechte Beispiele
    • Aktueller Stand
    • A hard days work
    • Typo
    • Fix bug
    • Fix test
    • Updated blafoo
    • Testfall und Implementierung #1337
    12

    View Slide

  17. Schlechte Beispiele
    „Eure“ schlechten Git Commit Messages?
    13

    View Slide

  18. Gutes Beispiel: git
    Das Diff:
    14

    View Slide

  19. Gutes Beispiel: git
    Die Message (gekürzt):
    15

    View Slide

  20. Gutes Beispiel: git
    Die Message:
    • 73 (!) Zeilen
    • Überschrift als Zusammenfassung
    • Wo wurde die eigentliche Änderung eingeführt und warum?
    • Warum musste dies geändert werden?
    • Warum fiel der Fehler nicht vorher auf?
    • Was sind andere mögliche Fixes?
    • Wer hat es reviewt und abgesegnet?
    16

    View Slide

  21. Warum der Aufwand?
    • Warum wurde es gemacht?
    • Warum war es vorher defekt?
    • Warum fiel es vorher nicht auf?
    • Was hat sich der Autor dabei gedacht?
    17

    View Slide

  22. Sieben Regeln für gute Git Commit-Messages
    1. Separater Betreff, mit Leerzeile vom Body getrennt
    2. Limitiere die Länge des Betreffs auf 50 Zeichen
    3. Beginne den Betreff mit einem Großbuchstaben
    4. Beende den Betreff nicht mit einem Punkt
    5. Nutze den Imperativ
    6. Limitiere den Body auf 72 Zeichen pro Zeile
    7. Nutze den Body um zu erklären, was warum und wie nötig war
    18

    View Slide

  23. Schöne Commits
    Nachteile:
    • Zeitaufwändig
    • Lästig
    • Liest es tatsächlich jemand?
    19

    View Slide

  24. Schöne Commits
    Vorteile:
    • Git Blame!
    • Definitiv nachvollziehbar!
    • Keine Notwendigkeit ganze Historie zu überblicken!
    20

    View Slide

  25. Fragen?
    20

    View Slide

  26. Vielen Dank für die Aufmerksamkeit!
    Hauptquelle: https://chris.beams.io/posts/git-commit/
    Fragen, Feedback und Fehler gerne per E-Mail an [email protected].
    Blog: svij.org
    Twitter: @svijee
    Copyright 2018 Sujeevan Vijayakumaran
    21

    View Slide