Ziel des Workshops ist es, dass Sie ein mentales Modell aufbauen, wie das Versionskontrollsystem git funktioniert. Ein solches Modell entsteht durch reflektiertes Handeln, d.h. sie machen etwas, das Sie gleichzeitig verstehen. Deswegen stehen Ihre Handlungen und und Fragen im Mittelpunkt: Jede Frage deutet auf eine Unstimmigkeit in Ihrem mentalen Modell hin und ist ein gutes Zeichen dafür, dass Sie dabei sind, die Lücke zu schließen und Ihr Modell zu verbessern. Merken oder notieren Sie sich Ihre Fragen, damit wir gemeinsam darüber sprechen können.

Sie werden die grundlegenden Funktionsweisen von git anhand eines fiktiven Spielprojekts kennen lernen. Dieses Projekt besteht aus Textdateien, die nicht ausführbar sind. Alle Skripte, Assets, Level etc. werden lediglich durch Platzhalterdateien mit einfachen Texteinträgen repräsentiert.

  1. Richten Sie sich ein Konto auf unserem gitLab-Server https://bth4k16.cult.uni-bayreuth.de:9090 ein (Ausnahmeregel in Firefox hinzufügen oder Chrome benutzen)
  2. Legen Sie dort ein Repository für Ihr Spielprojekt an (new project).
  3. Prüfen Sie die Installation von Sourcetree.
  4. Clonen Sie Ihr Online-Repository auf dem Desktop. Das ist ein leerer Ordner.

  5. Installieren Sie PSPad Portable version. Damit können Sie mehrere Textdateien gleichzeitig öffnen und in einer Ordnerstruktur verwalten.
  6. Öffnen Sie in PSPad in der Ordneransicht (zweiter Reiter) Ihr geclontes Repo.
  7. Nun können Sie nach Belieben Ordner und Textdateien erzeugen, die Ihr Spiel repräsentieren, z.B. Skripte, Modelle, Level, Texturen, Sound etc. Geben Sie sich aber nicht zu viel Mühe, es geht lediglich darum, editierbares Material zum Üben zu haben.

  8. Übung: Staging / Unstaging. Klicken Sie auf commit. Wählen Sie thematisch zusammenhängende Dateien aus. Commits sollen so groß wie nötig und so klein wie möglich sein. Größere Arbeiten am Projekt werden daher in mehrere Commits aufgeteilt.
  9. Übung: Commit und Commit Messages. Sinnvolle Commit-Messages erleichtern es Ihnen und Ihren Projektmitarbeitern, den Projektverlauf nachzuvollziehen.
  10. Übung Tag. Benennen Sie ausgewählte Commits, um sie einfacher wiederzufinden.
  11. Übung Push / Pull. Synchronisieren Sie Ihre Commits mit dem Remote-Repository. Wichtige Regel: Pull First, um etwaige Änderungen in Ihr lokales Projekt zu integrieren.
  12. Übung Bewegen im git-Baum: springen Sie unterschiedliche commits an, lesen Sie die Warnung und beobachten Sie, wie sich Ihre Projektdateien ändern. Keine Sorge, Sie können den HEAD (zeigt auf einen Commit) jederzeit wieder zurückbewegen.

  13. Übung Branches: Legen Sie einen Branch develop an und ergänzen Sie darauf neue Dateien
  14. Übung Merging: Gehen Sie auf den master-branch und mergen sie dorthinein den Branch develop. Sofern auf develop nur neue Dateien angelegt wurden, sollte der Merge ohne Probleme funktionieren. Damit stellen Sie sicher, dass auf  master immer eine ‚funktionierende‘ Version liegt, während Sie in Ruhe neue Features entwickeln können.

  15. Übung Merge-Konflikt: Erzeugen Sie einen neuen Branch bugfix. Ändern Sie darin eine Datei. Wechseln Sie wieder zu develop und ändern Sie dieselbe Datei an einer anderen Stelle. Versuchen Sie nun von develop aus, bugfix in develop zu mergen. Das führt zu einem Konflikt, den Sie lösen müssen, ehe Sie weitermachen können. Melden Sie sich, wenn Sie soweit sind.

  16. Schließen Sie sich zu Gruppen von 3–4 Personen zusammen und bearbeiten Sie gemeinsam ein Repository. Orientieren Sie sich an einem bewährten Git-Workflow, den Sie auch in einem echten Projekt verwenden können. Denken Sie daran, Features in die Level-Datei einzufügen, was regelmäßig zu merge-Konflikten führt, die Sie lösen müssen.

  17. Branchen, mergen und vieles andere können Sie online und interaktiv mit vielen Erklärungen nachvollziehen.
  18. Wenn Sie mehr über git lernen wollen, können Sie im Buch Pro Git weiterlesen. Wie git genau funktioniert, wird im Kapitel 9 beschrieben.