# git

Aufgabe 1:

Lade mittels "git clone https://github.com/pep-dortmund/toolbox-workshop" die
Materialien für diesen Workshop herunter und schaue dir mittels "git log" die
Vergangenheit des Repositories an. Kannst du erkennen, welcher der Helfenden als
Letztes am Material gearbeitet hat?

Aufgabe 2:

Mache dich mit git vertraut. Dazu haben wir ein Beispiel-Repository in Form eines
templates vorbereitet. Wir werden es verwenden, um den Einstieg in das template für
die Versuchsprotokolle zu vereinfachen.
Diese Aufgabe eignet sich optimal als Einstieg, um zu zweit Aufgaben bzw. Code zu
bearbeiten. Daher empfehlen wir, dass du die folgenden Aufgabenteile mit min. einer
weiteren Person aus dem Workshop zusammen bearbeitest.

1. Eine ausführliche Anleitung, wie das Erstellen eines neuen Repository ausgehend von
   einem Template ganz genau funkioniert, findest du auch noch einmal hier:
   "https://toolbox.pep-dortmund.org/introduction/toolbox/" am Beispiel des
   Praktikum-Templates, das wir später noch verwenden werden.
   Gehe auf die Website: "https://github.com/pep-dortmund/git-exercise-template" und
   erstelle mit dem grün hinterlegten Knopf ein eigenes Repo mithilfe der
   Template-Funktion.
   Wichtig: Diesen Teil muss nur eine Person von euch aktiv bearbeiten. Macht diesen
   Schritt trotzdem gemeinsam, damit beide wissen, wie man aus einem Template ein eigenes
   Repository erstellt. Ab hier arbeitet ihr zusammen an diesem neu erstellten
   git-Aufgaben-Repository.

2. Danach clone das Repository (jeder ein Mal) von GitHub auf deinen Laptop, um im
   folgenden die git-Funktionen besser kennenzulernen.
   Wichtig: Ab hier arbeitet ihr jeweils an euren eigenen Laptops, allerdings zusammen
   an dem gleichen Repository. Achtet daher darauf, dass die andere Person in den
   Einstellungen eingeladen wird, in dem Repository mitzuarbeiten.

3. Schaue dir die Dateien im Repository an. Erzeuge 2 Plots, indem du "make" in
   deiner Kopie des Repositories ausführst; weiteres zu make kommt am Ende des
   Workshops.

4. Probiere nun mit den neu erstellten Dateien einmal "git status" aus. Was beobachtest
   du? Was beobachten deine Übungspartner:innen? Welches File ist dafür verantwortlich?

5. Mache beliebige Änderungen an den Dateien "plot1.py" oder "plot2.py" (Ändere
   z.B. die Farben der eingezeichneten Linien) und erzeuge die Plots durch
   Ausführen von "make". Hier empfiehlt es sich, dass zunächst eine Person an dem File
   "plot1.py" und die andere an "plot2.py" arbeitet. So simuliert ihr ein
   zusammenarbeiten an einem Projekt.

6. Führe erneut "git status" aus, um dir anzusehen, welche Dateien du geändert hast.
   Führe "git diff" aus, um dir die Änderungen Zeile für Zeile anzeigen zu lassen.

7. Füge die Änderungen zum Index hinzu ("git add" ...) und speichere den Index
   als neuen commit in der History ab (git commit -m "...").

8. Übertrage deinen commit anschließend mittels "git push" in das Repository.

9. Betrachte nun die Änderungen der jeweils anderen Person in eurem Repository, indem
   du mittles "git pull" den Index vom Server auf deine lokale Kopie des Repositories
   übernimmst. Gucke dir diese Modifikationen auch mittels "git diff" und dem commit
   hash genau an. Baut ggf. die plots mit einem "make"-Befehl neu.
   An dieser Stelle kannst du dir den commit hash auch sehr gut mithilfe von "git log"
   aus der git history angucken. Da findest du den commit deines/deiner Partner:in
   einfach durch den Namen und die E-Mail Adresse gekennzeichnet.

10. Bonus: Versucht einen merge conflict herbeizuführen, indem ihr in beiden Versionen
    der Repositories dieselbe Zeile ändert und ihr Schritte 8. und 9. wiederholt.
    Könnt ihr den merge conflict lösen?
