Upgrade to Pro — share decks privately, control downloads, hide ads and more …

7 Tipps für eine verständliche Git-Historie

7 Tipps für eine verständliche Git-Historie

Roland Weisleder

May 22, 2019
Tweet

More Decks by Roland Weisleder

Other Decks in Programming

Transcript

  1. www.data-experts.de
    Roland Weisleder
    @Ro_Wei #mddevdays
    7 Tipps für eine verständliche Git-Historie

    View Slide

  2. www.data-experts.de
    Roland Weisleder @ data experts

    Softwareentwickler und –architekt

    Leiter des Technologieboards

    Open Source Contributor
    Über den Sprecher

    View Slide

  3. www.data-experts.de 3

    View Slide

  4. www.data-experts.de 4

    View Slide

  5. www.data-experts.de 5

    View Slide

  6. www.data-experts.de 6
    https://twitter.com/tagir_valeev/status/1077132250939117568

    View Slide

  7. www.data-experts.de
    „Initialer Commit“ ist ein
    schwarzes Loch – vermeide es!
    7
    Tipp #1 für eine verständliche Git-Historie

    View Slide

  8. www.data-experts.de
    Schreibe für den Leser
    8

    View Slide

  9. www.data-experts.de
    $ git log --oneline -n 5 ceed916125
    ceed916125 Testcases angepasst und kleinere Fehler korrigiert
    ccce5012a9 Zwischenstand
    0db287cd79 Testcases angepasst und kleinere Fehler korrigiert
    7adf7c4dfe Zwischenstand
    8de1585bc7 IT-Test repariert
    9

    View Slide

  10. www.data-experts.de
    fixed stuff
    10

    View Slide

  11. www.data-experts.de
    Testcase reparieren
    11

    View Slide

  12. www.data-experts.de
    Triple-Mob-Programming und es funzt ... hoffentlich
    12

    View Slide

  13. www.data-experts.de
    OutOfMemory während der Verarbeitung (Teil 2)
    13

    View Slide

  14. www.data-experts.de
    NPE gefangen weil: wenn etwas an einem Feld geändert wird, das no
    Besser wäre es wohl vor dieser Validierung den Reload irgendwie z
    14

    View Slide

  15. www.data-experts.de
    Summarize changes in around 50 characters or less
    More detailed explanatory text, if necessary. Wrap it to about 72
    characters or so. In some contexts, the first line is treated as the
    subject of the commit and the rest of the text as the body. The
    blank line separating the summary from the body is critical (unless
    you omit the body entirely); various tools like `log`, `shortlog`
    and `rebase` can get confused if you run the two together.
    Further paragraphs come after blank lines.
    15

    View Slide

  16. www.data-experts.de
    Verwende die Standard-
    Formatierung für Commits!
    16
    Tipp #2 für eine verständliche Git-Historie

    View Slide

  17. www.data-experts.de 17

    View Slide

  18. www.data-experts.de
    NPE gefangen weil: wenn etwas an einem Feld geändert wird, das
    noch nicht gespeichert ist, kommt es bei
    field.getDependencies() zu einer NPE, da die Felder und ihre
    Dependencies erst aus dem XML geladen werden müssen.
    18

    View Slide

  19. www.data-experts.de
    NPE gefangen weil: wenn etwas an einem Feld geändert wird, das
    noch nicht gespeichert ist, kommt es bei
    field.getDependencies() zu einer NPE, da die Felder und ihre
    Dependencies erst aus dem XML geladen werden müssen.Besser wäre
    es wohl vor dieser Validierung den Reload irgendwie zu
    erzwindgen.
    19

    View Slide

  20. www.data-experts.de
    NPE gefangen weil: wenn etwas an einem Feld geändert wird, das
    noch nicht …
    20

    View Slide

  21. www.data-experts.de
    Formuliere eine kurze aber
    präzise Zusammenfassung!
    21
    Tipp #3 für eine verständliche Git-Historie

    View Slide

  22. www.data-experts.de
    Quellcode  Kommentar
    Änderung am Quellcode  Commit-Message
    22

    View Slide

  23. www.data-experts.de
    Altes Verhalten?
    Neues Verhalten?
    23

    View Slide

  24. www.data-experts.de
    Welche Quereffekte gibt es?
    24

    View Slide

  25. www.data-experts.de
    Änderungen, die nicht offensichtlich sind
    25

    View Slide

  26. www.data-experts.de
    Verlinke den Issue
    26

    View Slide

  27. www.data-experts.de
    Verlinke Stack Overflow
    27

    View Slide

  28. www.data-experts.de
    Warum?
    28

    View Slide

  29. www.data-experts.de
    Bewahre den Kontext
    des Commits!
    29
    Tipp #4 für eine verständliche Git-Historie

    View Slide

  30. www.data-experts.de 30

    View Slide

  31. www.data-experts.de 31
    git add -p

    View Slide

  32. www.data-experts.de
    681 insertions(+), 609 deletions(-)
    33

    View Slide

  33. www.data-experts.de 34

    View Slide

  34. www.data-experts.de
    Trenne Änderungen
    von Refactorings!
    35
    Tipp #5 für eine verständliche Git-Historie

    View Slide

  35. www.data-experts.de
    Vergessene PDF für Testprojekt
    36

    View Slide

  36. www.data-experts.de
    Verweis vergessen beim einchecken
    37

    View Slide

  37. www.data-experts.de
    Zu viel entfernten Code wieder hinzugefügt
    38

    View Slide

  38. www.data-experts.de
    Versehentlicher Commit entfernt
    39

    View Slide

  39. www.data-experts.de
    Den letzten Commit mit
    git commit --amend
    bearbeiten
    40
    Tipp #6 für eine verständliche Git-Historie

    View Slide

  40. www.data-experts.de 41

    View Slide

  41. www.data-experts.de
    commit c251c675015b251be5e33c032c0ae94b1177a439
    tree 1c7cdc0f91d7fffb5fe88ee2ce81c751e99120e0
    parent 20c7c4b2f2776bba9aff44f4a99f0443552da80c
    author John Doe
    author date Tue Mar 27 11:16:03 2018
    committer Max Mustermann
    commit date Wed Apr 4 14:33:48 2018
    message Einige Fehler behoben
    42
    https://www.atlassian.com/git/tutorials/

    View Slide

  42. www.data-experts.de 43
    https://www.atlassian.com/git/tutorials/

    View Slide

  43. www.data-experts.de 44
    https://www.atlassian.com/git/tutorials/

    View Slide

  44. www.data-experts.de 45
    https://twitter.com/henryhoffman/status/694184106440200192

    View Slide

  45. www.data-experts.de 46
    https://stackoverflow.com/q/35075042/4365460

    View Slide

  46. www.data-experts.de 47
    # p, pick = use commit
    # r, reword = use commit, but edit the commit message
    # e, edit = use commit, but stop for amending
    # s, squash = use commit, but meld into previous commit
    # f, fixup = like "squash", but discard this commit's log message
    # d, drop = remove commit

    View Slide

  47. www.data-experts.de 48
    # p, pick = use commit
    # r, reword = use commit, but edit the commit message
    # e, edit = use commit, but stop for amending
    # s, squash = use commit, but meld into previous commit
    # f, fixup = like "squash", but discard this commit's log message
    # d, drop = remove commit

    View Slide

  48. www.data-experts.de 49

    View Slide

  49. www.data-experts.de 53

    View Slide

  50. www.data-experts.de 54

    View Slide

  51. www.data-experts.de
    Kenne und nutze die
    Möglichkeiten von
    git rebase -i
    55
    Tipp #7 für eine verständliche Git-Historie

    View Slide

  52. www.data-experts.de 56

    View Slide

  53. www.data-experts.de
    1. „Initialer Commit“ ist ein schwarzes Loch – vermeide es
    2. Verwende die Standard-Formatierung für Commits
    3. Formuliere eine kurze aber präzise Zusammenfassung
    4. Bewahre den Kontext des Commits
    5. Trenne Änderungen von Refactorings
    6. Den letzten Commit mit git commit --amend bearbeiten
    7. Kenne und nutze die Möglichkeiten von git rebase –i
    57
    7 Tipps für eine verständliche Git-Historie

    View Slide

  54. www.data-experts.de

    How to Write a Git Commit Message
    https://chris.beams.io/posts/git-commit/

    Commit Often, Perfect Later, Publish Once: Git Best Practices
    https://sethrobertson.github.io/GitBestPractices/

    Advanced Git Tutorials
    https://www.atlassian.com/git/tutorials/advanced-overview
    58
    Mehr zum Thema

    View Slide