Git-Workshop Organisation Übersicht Git-Workhop zur Vorbereitung auf das Gruppenprojekt in der FOP gegen Ende des Wintersemesters. Wann? Ende des Wintersemesters; bisher immer im Februar. Möglichst nicht zu weit nach Beginn des Projekts, da sonst Interesse verloren geht ("Wir haben bereits angefangen, da steigen wir nicht mehr auf Git um!"). Jedoch auch nicht zu früh, da sonst durch andere Abgaben und Verpflichtungen keine Zeit besteht. Die Übung wurde bisher immer im Anschluss an den Vortrag veranstaltet. Zu berücksichtigen : Termine des FOP-Projekts: Start, Ende, HDA-Vortragstraining Andere Termine: Abschlussvorlesung des Mentorensystems, Vorlesungen, Klausuren Uhrzeit Übung: Evtl. Mittagspause zwischen Vortrag und Übung Dauer (Erfahrungswerte) : Vortrag: ca. 60 Minuten (inkl. Live-Demos) Übung: nach 1,5h bis 2h löst es sich auf Vergangangene Termine : 2020: 20.02. ca 60 Leute insgesamt beim Vortrag, ca 8 beim Workshop, FOP fast alle, nicht Info ~7 (WInf, Mathe, CogSci), Git Erfahrung ~5 2019: 27.02.: Geringe Teilnehmerzahl 2019: Vortrag ca. 40-60 Personen; Übung: max. 10 Personen 2018: 21.02.: ? 2017: 16.02.: ? 2016: 12.02. (Im Anschluss an Abschluss des Mentorensystems): Sehr hohe Teilnehmerzahl, keine Übung veranstaltet Wer? Orga 1-2 Menschen für Vortrag und Organisation Zusätzliche Helfer für Übung je nach Teilnehmerzahlen: i.d.R. 2-3 Menschen Teilnehmer Studierende der FOP: B.Sc. Informatik, LaG Informatik, Winf, Nebenfach Informatik, Studiengänge mit Informatik-Anteil (PsychIT, CE, IST) Andere Interessierte: ETIT Wo? Geeignete Hörsäle: S2|02 C205 (Großer Informatik-Hörsaal) S1|05 122 (Georg-Wickop-Hörsaal) Vielleicht Hexagon je nachdem wann es fertig wird und wie es dann aussieht Anforderungen an Hörsäle: Min. 2 Beamer Min. 2 separate Inputs für verschiedene Laptops Mikrofone Übung: Großer C-Pool (S2|02 C005) Inhalte Vortrag Grundlagen von Git Live-Demo ohne Remotes Live-Demo mit Remotes Live-Demo mit Remotes Am besten gehalten durch zwei Vortragende mit zwei Laptops, die die Rollen von Alice und Bob übernehmen. Als Beispielplattform kommt OpenProject des FB Informatik zum Einsatz . Was wird gezeigt? : Erstellung eines Projekt (siehe ISP Wiki für detaillierte Informationen) Einrichtung SSH-Key Hinzufügen von anderen Teilnehmern Ablauf aus Präsentation: Basic, Auto-Merge, Manual-Merge Hinweise für zwei Vortragende : Am besten Linux + Windows als Systeme zeigen Unterschiede deutlich machen: SSH-Key-Generierung, Git-Shell Übung Das im Vortrag gezeigte Ausprobieren Bearbeitung des Übungsblatts Für Orga: Bereitstellung der Lösung online Feedback Wenn FOP-Dozenten Feedback zu Projekt einholen, zusätzliche Fragen: Kenntnis vom Git-Workshop-Angebot der Fachschaft Informatik? (j/n) Teilnahme am Git-Workshop? (j/n) Feedback/Anmerkungen (Freitext) Nice-to-Have TODOs Bebilderte Anleitung zur Git-Installation auf Windows Bebilderte Anleitung zur Erstellung eines SSH-Keys auf Windows (vielleicht hat das ISP Wiki so etwas?) Material Vorlesung + Vortrag + Aushang Siehe D120 GitLab . Werbung Öffentliche Ankündigung als E-Mail An alle Fachschaften mit relevanten Studiengängen: wir@d120.de fachschaft@fs1.de fachschaft@ce.tu-darmstadt.de info@fs-ist.de fachschaft@mathematik.tu-darmstadt.de fachschaftlag@lists.tu-darmstadt.de fachschaft@physik.tu-darmstadt.de mail@fspsy.de fachschaft@fs-etit.de Liebe Fachschaften, die Fachschaft Informatik plant zum Start des Programmierprojekts in Funktionale und objektorientierte Programmierkonzepte (FOP, ehemals GDI 1) einen Workshop zum Versionskontrollsystem Git [0] zu veranstalten. Er steht allen Interessierten offen. Inhaltlich werden wir die Motivation und Grundlagen von Versionskontrollsystemen anhand von Beispielen vermitteln. Dies umfasst die Nutzung von Git-Grundbefehlen über die Shell und die Zusammenarbeit über das ISP-SCM [1], welches auch im Rahmen des FOP-Projekts empfohlen wird. Starten werden wir mit einem Vortrag, in dem Versionskontrollsysteme allgemein und Git als konkretes Beispiel präsentiert werden. Im Anschluss wird eine Übung angeboten, in welcher Git ausprobiert werden kann. Diese Übung wird durch erfahrene Studierende betreut, sodass Fragen gezielt beantwortet werden können. Der Vortrag findet am *Mittwoch, den 27. Februar 2019 ab 12:00 in S105/122 (Altes Maschinenhaus)* statt. Nach einem Vortrag von ca. 60 Minuten wird die *Übung in S202/C005* stattfinden. Für weitere Fragen und Anregungen stehen wir natürlich gerne zur Verfügung. [0] https://git-scm.com [1] https://scm.informatik.tu-darmstadt.de Andere Platformen FOP-Dozenten um Werbung im Kurs bitten Post auf dasWesentliche Teilen von Post auf Facebook und Twitter Eventuell Aushang Orga-Checkliste Termin festlegen und Raumbuchung: 1,5 bis 2 Monate vorher Abstimmung mit Dozenten über Termin bzgl. anderer FOP-Termine Buchung des Hörsaals (siehe allgemeine Raumbuchung) KEINE Buchung des C-Pools (Wir wollen den Studierenden keine Lernräume wegnehmen) Werbung: 1,0 bis 1 Monat vorher Hinweis an Dozenten Rundmail an Fachschaften (siehe Material ) Anwerben von Helfern für Übung: 2 bis 4 Wochen vorher Eine Bitte über fs@ senden reicht meistens Erinnerungs-Werbung: 1 Woche vorher Sociel Media Kanäle o.ä. Tag des Vortrags: Transponder für Tote Briefkästen organisieren (entweder Hörsaal-Transponder der Fachschaft wenn Berechtigung vorhanden, Hausmeister, Pforte im Alten Hauptgebäude, ...) Paar Exemplare gedruckter Übungen bereitlegen im C-Pool Vortrag Nachbereitung: Rückgabe des Transponders Dokumentation aktualisieren (v.a. Teilnehmerzahlen!) Hochladen der Lösungen zu den Übungen Feedback über FOP-Projekt einholen Dazu natürlich noch eine Überarbeitung des Workshopmaterials, falls erforderlich. Skript zu den Live-Demos des Workshops 1. Demo - Git alone Vorbereitung git-scm.org Git für Windows herunterladen, installieren (auf Editor-Auswahl hinweisen, ansonsten Standardeinstellungen) Musterordner öffnen Shell öffnen in Musterordner git config --global user.name Alice git config --global user.email alice@d120.de git init Dateien hinzufügen und Commits erstellen git status git add example.java git status git commit -m "Initial commit" git status In example.java add implementieren git add example.java git commit Implemented add Solved task 1 In example.java sub implementieren git add example.java git commit -m "Implemented sub" git log --oneline --graph SSH-Key generieren ssh-keygen notepad .ssh/id_rsa.pub - copy github.com, Settings, SSH and GPG keys, New SSH key - paste Neues Repo anlegen und einrichten Create new repository, Private copy-paste commands from site to configure remote git push 2. Demo - Git together Collaborators einladen Settings, Manage Access, Invite a collaborator [B] Einladung annehmen (Link per Mail) [B] git clone Automatic merge [A] editiert [B] editiert andere Zeile [A] pusht [B] pusht, bekommt Fehler, pullt + pusht und es geht automatisch 3. Demo - Git in conflict Merge conflict [A] editiert [B] editiert gleiche Zeile [A] pusht [B] pusht, bekommt Fehler, pullt + pusht und bekommt die Fehlermeldung "Automatic merge failed". [B] löst den Konflikt 4. Demo - Branches Branch erstellen und wieder mergen git checkout -b feature/multiply example.java bearbeiten git add example.java git commit -m "implement multiplication" git log --oneline --graph git checkout master git merge feature/multiply