Zum Inhalt springen
Informatik · Klasse 13 · Software-Engineering und Abschlussprojekt · 2. Halbjahr

Versionskontrolle mit Git

Die Schülerinnen und Schüler lernen den Umgang mit Versionskontrollsystemen zur Teamarbeit und Code-Verwaltung.

KMK BildungsstandardsKMK: Sekundarstufe II - Kommunizieren und KooperierenKMK: Sekundarstufe II - Modellieren und Implementieren

Ü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

  1. Erklären Sie die Vorteile von Versionskontrollsystemen in der Softwareentwicklung.
  2. Analysieren Sie den Workflow von Git für die Zusammenarbeit in Teams.
  3. 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

Grundlagen der Programmierung

Warum: Schüler müssen grundlegende Programmierkonzepte und die Struktur von Code verstehen, um Änderungen nachvollziehen und verwalten zu können.

Dateiverwaltung und Ordnerstrukturen

Warum: Ein grundlegendes Verständnis, wie Dateien und Ordner organisiert und gespeichert werden, ist notwendig, um die Funktionsweise von Repositories zu begreifen.

Schlüsselvokabular

RepositoryEin zentraler Speicherort, der die gesamte Historie eines Softwareprojekts, einschließlich aller Dateien und Änderungen, enthält.
CommitEine Momentaufnahme des Projektzustands zu einem bestimmten Zeitpunkt, die eine Beschreibung der vorgenommenen Änderungen enthält.
BranchEine unabhängige Entwicklungslinie, die es ermöglicht, an neuen Features zu arbeiten, ohne die Hauptcodebasis zu beeinflussen.
MergeDer Prozess, bei dem Änderungen von einem Branch in einen anderen integriert werden, um Code zusammenzuführen.
Pull RequestEine 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 ansehen

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

Lernstandskontrolle

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.

Diskussionsfrage

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.

Kurze Überprüfung

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?
Git bietet Nachverfolgbarkeit aller Änderungen, erleichtert Teamkollaboration durch Branches und Pull Requests und ermöglicht Rückkehr zu stabilen Versionen. Konflikte werden früh erkannt und gelöst. In Projekten minimiert es Fehler und steigert Effizienz, wie Schüler in praktischen Übungen erleben.
Wie funktioniert der Git-Workflow für Teamzusammenarbeit?
Der Workflow umfasst clone, branch, commit, push, pull request und merge. Teams arbeiten parallel in Branches, reviewen Änderungen und integrieren sie zentral. Das verhindert Überschreibungen und fördert Code-Qualität, was in simulierten Projekten klar wird.
Wie kann aktives Lernen den Umgang mit Git verbessern?
Aktives Lernen macht Git durch hands-on-Übungen wie Repository-Setup in Gruppen und Konfliktlösungen greifbar. Schülerinnen und Schüler pushen realen Code, erleben Merges und reflektieren in Teams. Das festigt Befehle, reduziert Frustration und verbindet Theorie mit Praxis effektiver als reine Erklärungen.
Wie löst man Konflikte bei der Code-Integration mit Git?
Bei Conflicts öffnet Git die betroffenen Dateien mit Markierungen. Man bearbeitet manuell, staged mit git add und commitet. Strategien wie Feature-Branches und Reviews verhindern viele Konflikte. Übungen in Paaren trainieren diesen Prozess sicher.

Planungsvorlagen für Informatik