Versionsverwaltung mit git Simon Retsch Jonatan Strube 13.12.2017
Inhalt 1. Prinzip Versionsverwaltung 2. Grundlagen 3. Anbieter 4. Apps 5. Vorführung S. Retsch & J. Strube Versionsverwaltung mit git Folie 2 13. Dezember 2017
Prinzip Versionsverwaltung Eigenschaften: Sicherung Übersicht Organisation mehrerer Bearbeiter S. Retsch & J. Strube Versionsverwaltung mit git Folie 3 13. Dezember 2017
Grundlagen Hauptbefehle add commit push pull branch merge S. Retsch & J. Strube Versionsverwaltung mit git Folie 4 13. Dezember 2017
Grundlagen Hauptbefehle: Beispiel Master Projekt (Master branch) Lukas erstellt branch von Master commit von Lukas Johanna erstellt branch von Lukas Master merged seinen branch mit Lukas branch Master merged seinen branch mit Johannas branch S. Retsch & J. Strube Versionsverwaltung mit git Folie 5 13. Dezember 2017
Grundlagen gitignore Versionierung sinnvoll bei: Textdateien Nicht sinnvoll bei: Binärdateien S. Retsch & J. Strube Versionsverwaltung mit git Folie 6 13. Dezember 2017
Grundlagen gitignore Schwarze Liste von Dateien/Ordnern Binäres *.exe Von Programmen.vscode/ Geheimes my_password.txt Weiße Liste Ausnahmen zur schwarzen Liste mit!!final/* S. Retsch & J. Strube Versionsverwaltung mit git Folie 7 13. Dezember 2017
Grundlagen gitignore Datei.gitignore: # alle Bin ä rdateien : *. exe *. out # Ordner von VSC :. vscode / # Geheimes : mein_passwort. txt bildchen /* # Behalte Einzeldatei :! bildchen / goodprof. png S. Retsch & J. Strube Versionsverwaltung mit git Folie 8 13. Dezember 2017
Grundlagen gitignore repository/.git/ bildchen/ badprof.png goodprof.png # alle Bin ä rdateien : *. exe *. out # Ordner von VSC :. vscode / # Geheimes : mein_passwort. txt bildchen /* # Behalte Einzeldatei :! bildchen / goodprof.png programm/.vscode/... readme.md virus.c virus_unix.out virus_win.exe.gitignore deren_passwoerter.txt mein_passwort.txt no_virus.exe virus.png S. Retsch & J. Strube Versionsverwaltung mit git Folie 9 13. Dezember 2017
Grundlagen Commitnachricht Richtlinien Commit Nachricht besteht aus: Thema / Titel (subject) Kurze Beschreibung. Rumpf / Beschreibung (body) Was wurde warum geändert (nicht wie) S. Retsch & J. Strube Versionsverwaltung mit git Folie 10 13. Dezember 2017
Grundlagen Commitnachricht Richtlinien Richtlinien Titel Kurz (50, max. 72 Zeichen) Mit Großbuchstabe beginnen Kein Punkt am Ende Imperativ S. Retsch & J. Strube Versionsverwaltung mit git Folie 11 13. Dezember 2017
Grundlagen Commitnachricht Richtlinien Negativbeispiel Erweiterung Keylogger, der alles Aufgezeichnete in eine Datei im selben Ordner speichert. Es wurde ein Keylogger durch memory injection implementiert. In Zeilen 50-100 der Codedatei kann man gut sehen, wie die durch einen buffer overflow jedes Betriebssystem komprimiert werden kann. Mehr Passwörter! Yay. S. Retsch & J. Strube Versionsverwaltung mit git Folie 12 13. Dezember 2017
Grundlagen Commitnachricht Richtlinien Beispielnachricht Erweitere Virus um Keylogger Es wurde ein Keylogger implementiert, der alle Nutzereingaben aufzeichnet und speichert. Dadurch können mehr Passwörter ausgelesen werden. S. Retsch & J. Strube Versionsverwaltung mit git Folie 13 13. Dezember 2017
Anbieter GitHub GitLab Bitbucket S. Retsch & J. Strube Versionsverwaltung mit git Folie 14 13. Dezember 2017
Anbieter Vergleich Kostenfreie Version: Kategorien Bitbucket GitHub GitLab Public ja ja ja Private Repositories ja nein ja Teams ja (limit: 5) ja ja S. Retsch & J. Strube Versionsverwaltung mit git Folie 15 13. Dezember 2017
Apps SmartGit, SourceTree,... GitHub Desktop Integriert in Visual Studio Code S. Retsch & J. Strube Versionsverwaltung mit git Folie 16 13. Dezember 2017
Apps SmartGit, SourcTree und Co Umfassende GUIs Erweiterte Funktionalitäten über GUI: cherry picking Konfliktlösungen... S. Retsch & J. Strube Versionsverwaltung mit git Folie 17 13. Dezember 2017
Apps SmartGit S. Retsch & J. Strube Versionsverwaltung mit git Folie 18 13. Dezember 2017
Apps SourceTree S. Retsch & J. Strube Versionsverwaltung mit git Folie 19 13. Dezember 2017
Apps GitHub Desktop Sehr eingeschränkte Funktionalität Für Alltag ausreichend S. Retsch & J. Strube Versionsverwaltung mit git Folie 20 13. Dezember 2017
Apps GitHub Desktop S. Retsch & J. Strube Versionsverwaltung mit git Folie 21 13. Dezember 2017
Apps Visual Studio Code Features: Einbindung in Entwicklungsumgebung Direkter Import (clone) von Git Repositories Grundlegende Befehle sind verfügbar Anzeige aktuell geänderter Passagen im Editor S. Retsch & J. Strube Versionsverwaltung mit git Folie 22 13. Dezember 2017
Vorführung Vorführung zeigt git-nutzung in Visual Studio Code: Veranschaulichung: Pull Commit Push Konflikte Lösen bei parallelem Bearbeiten (ohne pull vor commit) In anderen branch wechseln/arbeiten und zurück wechseln (Checkout) Branch zum master mergen S. Retsch & J. Strube Versionsverwaltung mit git Folie 23 13. Dezember 2017
Quellen Grundlagen https://gist.github.com/robertpainsi/b632364184e70900af4ab688decf6f53 https://wiki.openstack.org/wiki/gitcommitmessages https://chris.beams.io/posts/git-commit/ Anbieter https://medium.com/flow-ci/github-vs-bitbucket-vs-gitlab-vs-coding-7cf2b43888a1 Apps http://www.syntevo.com/smartgit/ https://www.sourcetreeapp.com/ https://desktop.github.com/ S. Retsch & J. Strube Versionsverwaltung mit git Folie 24 13. Dezember 2017