Aufgabe 15 - Git I - Zeitmaschine
Aufgabe 15 - Git I - Zeitmaschine
Abschnitt betitelt „Aufgabe 15 - Git I - Zeitmaschine“Worum geht es?
Abschnitt betitelt „Worum geht es?“Ihr erster vollständiger Git-Workflow: Repository anlegen, Schnappschüsse machen, Historie lesen und in ihr zurückreisen (siehe Kapitel Versionsverwaltung mit Git). Ab dieser Übung wird jedes Projekt des Schuljahres in einem Repository geführt; die hier eingeübten Handgriffe sind also keine Übungsdekoration, sondern der künftige Alltag, bis hin zur Abgabe des Abschlussprojekts.
Was Sie dafür brauchen
Abschnitt betitelt „Was Sie dafür brauchen“- Kapitel Versionsverwaltung mit Git, Abschnitte Konzepte, drei Bereiche und täglicher Zyklus.
- Git (installiert, mit Name und E-Mail konfiguriert), ein Terminal.
- Ein bestehendes eigenes Python-Projekt als Spielmaterial, etwa die Mediathek aus Aufgabe 09.
Welche Kompetenzen Sie erwerben und zeigen
Abschnitt betitelt „Welche Kompetenzen Sie erwerben und zeigen“- Sie erklären die Konzepte Repository, Staging, Commit und Historie mit eigenen Worten.
- Sie wenden den täglichen Zyklus (
status,add,commit,log,diff) sicher an. - Sie schreiben Commit-Messages, die eine brauchbare Projektgeschichte ergeben.
Pädagogische Einordnung
Abschnitt betitelt „Pädagogische Einordnung“- Reproduktion: die Grundkommandos ausführen und ihre Wirkung beschreiben (Teil A).
- Reorganisation und Transfer: Historie lesen, Unterschiede analysieren und Zustände gezielt wiederherstellen (Teile B und C).
- Reflexion, Problemlösung und Urteilsbildung: eine Fehlersituation per Historie aufklären und Arbeitsregeln begründen (Teil D).
Arbeitsaufträge
Abschnitt betitelt „Arbeitsaufträge“Die Übung ist auf etwa zwei Stunden ausgelegt. Führen Sie vor und nach jedem Schritt git status aus; das Kommando ist der Kompass dieser Übung. Teil D ist der Expertenteil.
Teil A - Repository und erste Commits
Abschnitt betitelt „Teil A - Repository und erste Commits“- Legen Sie ein neues Verzeichnis an, kopieren Sie Ihr Projekt hinein und machen Sie mit
git initein Repository daraus. - Erster Commit:
git addfür alle Projektdateien, danngit commit -m "Initial version of the media library". - Beobachten Sie mit
git statusdie drei Bereiche: Ändern Sie eine Datei (Status: modified), stagen Sie sie (Status: staged), committen Sie (Status: clean). Notieren Sie die drei Statusausgaben.
Teil B - Eine Geschichte aufbauen
Abschnitt betitelt „Teil B - Eine Geschichte aufbauen“- Machen Sie vier weitere Commits mit echten, kleinen Änderungen (neue Methode, Docstring, Umbenennung, Korrektur). Jede Message: eine Zeile im Imperativ, die die Änderung benennt.
- Legen Sie eine
.gitignoremit__pycache__/an und committen Sie sie. Prüfen Sie, dass ein erzeugter__pycache__-Ordner ingit statusnicht mehr auftaucht. - Zeigen Sie die Historie mit
git log --onelineund notieren Sie die Kurz-Hashes.
Teil C - Die Zeitmaschine
Abschnitt betitelt „Teil C - Die Zeitmaschine“- Zeigen Sie mit
git diff <hash1> <hash2>die Änderungen zwischen zwei früheren Commits und beschreiben Sie in einem Satz, was das Diff aussagt. - Machen Sie eine Datei absichtlich kaputt (Inhalt löschen, speichern, nicht committen) und stellen Sie sie mit
git restorewieder her. - Stagen Sie eine Änderung und holen Sie sie mit
git restore --staged <file>wieder aus der Staging Area, ohne die Änderung selbst zu verlieren. Wozu könnte das nützlich sein? - Sehen Sie mit
git show <hash>in einen alten Commit hinein, ohne die Zeitreise anzutreten.
Teil D - Expertenteil: Der Detektivfall
Abschnitt betitelt „Teil D - Expertenteil: Der Detektivfall“- Präparieren Sie den Fall selbst: Bauen Sie in einem Ihrer nächsten drei Commits einen unauffälligen inhaltlichen Fehler ein (etwa ein Vorzeichen gedreht), committen Sie danach noch zweimal Harmloses.
- Tauschen Sie das Repository mit einer Kollegin oder einem Kollegen. Auftrag: Finden Sie im fremden Repository nur mit Git-Mitteln (
log,diff,show, gernegit log -p <file>), in welchem Commit der Fehler entstand. Protokollieren Sie Ihren Suchweg. - Diskutieren Sie in drei Sätzen: Wie hätte eine bessere oder schlechtere Commit-Aufteilung (“ein Commit, ein Thema” gegen “alles von heute”) Ihre Suche verändert?
- Beantworten Sie schriftlich in je zwei bis drei Sätzen: Wozu existiert die Staging Area, statt immer alles zu committen? Woran erkennt man eine gute Commit-Message? Warum gehören erzeugte Dateien nicht in die Historie?
Wissenscheck
Abschnitt betitelt „Wissenscheck“- Nennen Sie die drei Bereiche von Git und das Kommando, das eine Änderung jeweils in den nächsten Bereich bewegt.
- Was enthält ein Commit außer den Dateiinhalten?
- Worin unterscheiden sich
git diffundgit diff --staged? - Was tut
git restore <file>, und warum ist Vorsicht geboten? - Sie übernehmen ein fremdes Projekt. Welche zwei Git-Kommandos verschaffen Ihnen als Erstes einen Überblick, und was zeigen sie?
Das Repository (Push auf das Schul-GitLab oder ZIP samt .git-Ordner), die Ausgabe von git log --oneline, das Detektiv-Protokoll und die schriftlichen Antworten aus Teil D.