Versionskontrolle mit Git
Die Schülerinnen und Schüler lernen den Umgang mit Versionskontrollsystemen zur Teamarbeit und Code-Verwaltung.
Über dieses Thema
Versionskontrolle mit Git ermöglicht Schülerinnen und Schüler, Code-Änderungen systematisch zu verwalten und in Teams zusammenzuarbeiten. Sie lernen grundlegende Befehle wie commit, branch, merge und pull request, um den Workflow der Softwareentwicklung nachzuvollziehen. Dies schließt direkt an die Key Questions an: Vorteile wie Nachverfolgbarkeit von Änderungen, Kollisionsvermeidung und Rückkehr zu früheren Versionen werden erläutert. Der Umgang mit Git fördert zudem Strategien zur Konfliktlösung bei der Code-Integration.
Im KMK-Standardrahmen Sekundarstufe II verbindet das Thema 'Kommunizieren und Kooperieren' mit 'Modellieren und Implementieren'. Schülerinnen und Schüler modellieren reale Entwicklungsprozesse, etwa durch verteilte Repositories, und kooperieren wie in professionellen Teams. Dies stärkt systemisches Denken in komplexen Software-Umgebungen und bereitet auf Abschlussprojekte vor.
Aktives Lernen eignet sich hervorragend, da abstrakte Konzepte wie Branching und Merging durch praktische Übungen greifbar werden. Wenn Schülerinnen und Schüler in Gruppen eigene Repositories aufsetzen und kollaborativ bearbeiten, verstehen sie Konflikte hautnah und entwickeln Lösungsstrategien. Solche hands-on-Aktivitäten machen den Stoff nachhaltig und motivierend.
Leitfragen
- Erklären Sie die Vorteile von Versionskontrollsystemen in der Softwareentwicklung.
- Analysieren Sie den Workflow von Git für die Zusammenarbeit in Teams.
- Designen Sie eine Strategie zur Konfliktlösung bei der Code-Integration.
Lernziele
- Analysieren Sie die Notwendigkeit von Versionskontrollsystemen für die Nachverfolgbarkeit von Code-Änderungen in Softwareprojekten.
- Vergleichen Sie die Funktionsweisen von Branching und Merging in Git zur parallelen Entwicklung und Integration von Features.
- Bewerten Sie verschiedene Strategien zur Lösung von Merge-Konflikten in kollaborativen Entwicklungsumgebungen.
- Erstellen Sie einen Workflow für ein kleines Entwicklungsteam unter Verwendung von Git-Befehlen wie commit, push, pull und rebase.
Bevor es losgeht
Warum: Schüler müssen grundlegende Programmierkonzepte und die Struktur von Code verstehen, um Änderungen nachvollziehen und verwalten zu können.
Warum: Ein grundlegendes Verständnis, wie Dateien und Ordner organisiert und gespeichert werden, ist notwendig, um die Funktionsweise von Repositories zu begreifen.
Schlüsselvokabular
| Repository | Ein zentraler Speicherort, der die gesamte Historie eines Softwareprojekts, einschließlich aller Dateien und Änderungen, enthält. |
| Commit | Eine Momentaufnahme des Projektzustands zu einem bestimmten Zeitpunkt, die eine Beschreibung der vorgenommenen Änderungen enthält. |
| Branch | Eine unabhängige Entwicklungslinie, die es ermöglicht, an neuen Features zu arbeiten, ohne die Hauptcodebasis zu beeinflussen. |
| Merge | Der Prozess, bei dem Änderungen von einem Branch in einen anderen integriert werden, um Code zusammenzuführen. |
| Pull Request | Eine formelle Anfrage, Änderungen von einem Branch in einen anderen zu übernehmen, die oft eine Code-Review beinhaltet. |
Vorsicht vor diesen Fehlvorstellungen
Häufige FehlvorstellungGit dient nur als Backup-System.
Was Sie stattdessen lehren sollten
Versionskontrolle trackt Änderungen und ermöglicht kollaborative Arbeit, nicht nur Speicherung. Aktive Übungen wie gemeinsames Branching zeigen, wie Git Konflikte vermeidet und Historie rekonstruiert. Peer-Diskussionen klären den Unterschied zu einfachem Backup.
Häufige FehlvorstellungMerge-Konflikte sind immer un lösbar.
Was Sie stattdessen lehren sollten
Konflikte entstehen bei parallelen Änderungen und werden manuell gelöst. Praktische Simulationen in Gruppen lehren Tools wie git mergetool und Strategien wie Pull Requests. So lernen Schülerinnen und Schüler, Conflicts als normales Team-Feature zu sehen.
Häufige FehlvorstellungBranches komplizieren unnötig den Workflow.
Was Sie stattdessen lehren sollten
Branches isolieren Änderungen für sichere Experimente. Hands-on-Aktivitäten mit schnellem Branchen und Mergen demonstrieren Effizienz. Schüler vergleichen linearen Workflow mit branching-basiertem und erkennen Vorteile in Teamsettings.
Ideen für aktives Lernen
Alle Aktivitäten ansehenPaararbeit: Erste Git-Commits
Paare klonen ein gemeinsames Repository, bearbeiten separate Dateien und pushen Änderungen mit commit und push. Sie überprüfen den History mit git log. Abschließend besprechen sie, wie Commits die Zusammenarbeit erleichtern.
Gruppenrotation: Branching und Merging
Drei Stationen: 1. Branch erstellen und switchen. 2. Änderungen committen und merge request stellen. 3. Merge durchführen und Konflikte simulieren. Gruppen rotieren alle 10 Minuten und dokumentieren Schritte.
Whole Class: Konfliktlösungssimulation
Die Klasse teilt ein Repository. Jede Gruppe bearbeitet denselben Branch parallel, löst entstehende Conflicts mit git merge. Gemeinsame Reflexion am Ende über Strategien.
Individual: Persönliches Git-Projekt
Jede Schülerin und jeder Schüler initialisiert ein lokales Repo, fügt Dateien hinzu, erstellt Branches und merged sie. Am Ende pushen sie zu GitHub und teilen den Link.
Bezüge zur Lebenswelt
- Softwareentwickler bei großen Technologieunternehmen wie Google oder Microsoft nutzen Git täglich, um an komplexen Codebasen zu arbeiten und die Zusammenarbeit in Teams mit Hunderten von Entwicklern zu koordinieren.
- Open-Source-Projekte, wie das Betriebssystem Linux oder die Programmiersprache Python, werden global über Plattformen wie GitHub verwaltet, wo Tausende von Freiwilligen über Git zur Weiterentwicklung beitragen.
- Webentwicklungsagenturen setzen Versionskontrolle ein, um Änderungen an Kundenprojekten nachzuverfolgen, schnell zu früheren Versionen zurückzukehren, falls Probleme auftreten, und die Arbeit mehrerer Designer und Programmierer zu synchronisieren.
Ideen zur Lernstandserhebung
Geben Sie jedem Schüler eine Karte mit einem Git-Befehl (z.B. 'commit', 'branch', 'merge'). Bitten Sie die Schüler, eine kurze Erklärung zu schreiben, was dieser Befehl tut und in welchem Szenario er am nützlichsten ist.
Stellen Sie die Frage: 'Stellen Sie sich vor, zwei Entwickler ändern gleichzeitig dieselbe Zeile Code. Wie würden Sie mit Git vorgehen, um diesen Konflikt zu lösen und sicherzustellen, dass beide Änderungen korrekt integriert werden?' Sammeln Sie die Lösungsansätze der Schüler.
Teilen Sie die Klasse in Kleingruppen auf und geben Sie jeder Gruppe ein kleines Projekt (z.B. eine einfache Textdatei). Lassen Sie jede Gruppe Git einrichten, Änderungen vornehmen, committen und dann einen Branch erstellen und mergen. Beobachten Sie die Gruppen und stellen Sie gezielte Fragen zum Workflow.
Häufig gestellte Fragen
Was sind die Vorteile von Versionskontrollsystemen wie Git in der Softwareentwicklung?
Wie funktioniert der Git-Workflow für Teamzusammenarbeit?
Wie kann aktives Lernen den Umgang mit Git verbessern?
Wie löst man Konflikte bei der Code-Integration mit Git?
Planungsvorlagen für Informatik
Mehr in Software-Engineering und Abschlussprojekt
Einführung in Software-Engineering
Die Schülerinnen und Schüler lernen die Phasen des Softwareentwicklungsprozesses und die Bedeutung von Software-Engineering kennen.
2 methodologies
Anforderungsanalyse und -management
Die Schülerinnen und Schüler lernen, Softwareanforderungen zu erheben, zu dokumentieren und zu verwalten.
2 methodologies
Software-Design und Architektur
Die Schülerinnen und Schüler entwerfen Softwarearchitekturen und wenden Designprinzipien an.
2 methodologies
Agile Softwareentwicklung (Scrum)
Projektmanagement und iterative Entwicklungsprozesse.
3 methodologies
Qualitätssicherung und Testing
Verfahren zur Sicherstellung der Softwarequalität durch Unit-Tests und Code-Reviews.
3 methodologies
Software-Wartung und Evolution
Die Schülerinnen und Schüler verstehen die Herausforderungen und Strategien der Software-Wartung.
2 methodologies