Versionskontrolle mit Git
Die Schülerinnen und Schüler nutzen Git zur Versionskontrolle und kollaborativen Entwicklung von Softwareprojekten.
Über dieses Thema
Versionskontrolle mit Git ermöglicht Schülerinnen und Schülern in der Oberstufe, Softwareprojekte kollaborativ zu entwickeln und zu verwalten. Sie lernen grundlegende Befehle wie commit, push und pull, um Änderungen lokal zu speichern, remote zu übertragen und Aktualisierungen abzurufen. Branches erlauben parallele Entwicklungsstränge, was Konflikte minimiert und Experimente sicher macht. Diese Tools unterstützen die gemeinsame Arbeit an einer Codebasis und fördern ein professionelles Arbeitsverhalten.
Im Kontext der KMK-Standards Sekundarstufe II stärkt das Thema Kooperieren und Kommunizieren durch Pull Requests und Code-Reviews, während Problemlösen und Handeln durch Merge-Konflikte und Branch-Management geübt werden. Schülerinnen und Schüler erleben reale Szenarien der Softwareentwicklung, wie sie in Unternehmen üblich sind, und entwickeln Verantwortung für gemeinsamen Code.
Aktives Lernen eignet sich besonders für Git, da praktische Übungen mit realen Repositories abstrakte Konzepte wie Versionsgeschichte und Kollaboration greifbar machen. Schülerinnen und Schüler internalisieren Prozesse durch Wiederholung und Fehlversuche, was langfristiges Verständnis schafft und Motivation steigert.
Leitfragen
- Wie unterstützen Tools wie Git die kollaborative Arbeit an einer gemeinsamen Codebasis?
- Erklären Sie den Unterschied zwischen 'commit', 'push' und 'pull' in Git.
- Beurteilen Sie die Risiken und Vorteile der Nutzung von Branches in der Softwareentwicklung.
Lernziele
- Erklären Sie die Kernkonzepte von Git: Repository, Commit, Branch, Merge, Push und Pull.
- Demonstrieren Sie die Erstellung eines lokalen Git-Repositorys und das Hinzufügen von Dateien.
- Analysieren Sie die Unterschiede zwischen der Arbeit auf dem Haupt-Branch und der Nutzung von Feature-Branches.
- Bewerten Sie die Effektivität von Git für die kollaborative Softwareentwicklung anhand eines simulierten Projekts.
- Erstellen Sie einen einfachen Workflow für die gemeinsame Bearbeitung eines Projekts unter Verwendung von Pull Requests.
Bevor es losgeht
Warum: Ein grundlegendes Verständnis von Programmcode und Projektstrukturen ist notwendig, um die Notwendigkeit und Funktionsweise der Versionskontrolle nachvollziehen zu können.
Warum: Schülerinnen und Schüler müssen wissen, wie Dateien und Verzeichnisse organisiert sind, um die Konzepte von Repositories und Dateimanipulationen in Git zu verstehen.
Schlüsselvokabular
| Repository | Ein Verzeichnis, das alle Dateien eines Projekts sowie die gesamte Versionshistorie enthält. Es ist das Herzstück der Git-Versionskontrolle. |
| Commit | Ein Schnappschuss des Projektzustands zu einem bestimmten Zeitpunkt. Jeder Commit hat eine eindeutige ID und eine beschreibende Nachricht. |
| Branch | Eine unabhängige Entwicklungslinie, die vom Haupt-Code abzweigt. Dies ermöglicht parallele Arbeit an neuen Funktionen oder Fehlerbehebungen, ohne den stabilen Code zu beeinflussen. |
| Merge | Der Prozess, bei dem die Änderungen von einem Branch in einen anderen integriert werden. Dies kann zu Konflikten führen, wenn beide Branches dieselben Codezeilen geändert haben. |
| Pull Request | Eine Anfrage, Änderungen von einem Branch in einen anderen zu integrieren. Dies ist ein zentraler Mechanismus für Code-Reviews und die Zusammenarbeit in Teams. |
Vorsicht vor diesen Fehlvorstellungen
Häufige FehlvorstellungEin Commit speichert Änderungen sofort remote.
Was Sie stattdessen lehren sollten
Commits sind lokal und müssen mit push übertragen werden. Aktive Übungen mit lokalen Repos und Fehlversuchen bei vergessenen Pushes zeigen den Unterschied klar. Peer-Diskussionen vertiefen das Verständnis.
Häufige FehlvorstellungBranches sind vollständige Kopien des Projekts.
Was Sie stattdessen lehren sollten
Branches teilen die Historie und divergieren nur bei neuen Commits. Praktische Branch-Erstellung und Merges demonstrieren Effizienz. Gruppenarbeit hilft, Vorteile gegenüber Kopien zu erkennen.
Häufige FehlvorstellungPull Requests sind nur für Reviews nötig, nicht essenziell.
Was Sie stattdessen lehren sollten
Pull Requests ermöglichen kollaborative Überprüfung vor Merge. Simulationsübungen mit Reviews lehren Kommunikation. Schülerinnen und Schüler sehen Risiken unreviewed Merges in Team-Szenarien.
Ideen für aktives Lernen
Alle Aktivitäten ansehenEinstieg: Git-Grundbefehle üben
Schülerinnen und Schüler klonen ein gemeinsames Repository, führen erste Commits durch und pushen Änderungen. Sie experimentieren mit pull, um Partneränderungen abzurufen. Abschließend besprechen sie Beobachtungen in der Gruppe.
Branch-Challenge: Parallele Features
In Paaren erstellen Schülerinnen und Schüler Branches für neue Features, committen lokal und mergen via Pull Request. Sie lösen simulierte Konflikte. Die Klasse reviewt die Ergebnisse gemeinsam.
Kollaboratives Projekt: Team-Repo
Die Klasse baut ein gemeinsames Projekt-Repository auf. Jede Gruppe übernimmt ein Modul, verwendet Branches und integriert via push und pull. Abschluss mit Demo-Runde.
Konflikt-Resolution-Stationen
Stationen mit vordefinierten Merge-Konflikten: Schülerinnen und Schüler identifizieren Ursachen, lösen sie und committen. Rotation und Peer-Feedback.
Bezüge zur Lebenswelt
- Softwareentwickler bei Unternehmen wie Google oder Microsoft nutzen Git täglich, um an komplexen Betriebssystemen, Webanwendungen und mobilen Apps zu arbeiten. Sie verwenden Branches für neue Features und beheben Fehler, bevor sie Änderungen in die Hauptversion integrieren.
- Open-Source-Projekte auf Plattformen wie GitHub, beispielsweise die Entwicklung des Linux-Betriebssystems oder der Programmiersprache Python, basieren vollständig auf Git. Freiwillige aus aller Welt tragen durch das Erstellen von Pull Requests zur Weiterentwicklung bei.
Ideen zur Lernstandserhebung
Die Schülerinnen und Schüler erhalten die Aufgabe, drei Git-Befehle zu nennen und jeweils kurz zu erklären, wofür sie verwendet werden. Zusätzlich sollen sie einen Satz dazu schreiben, warum die Arbeit mit Branches sinnvoll ist.
Stellen Sie eine Reihe von Szenarien vor, z.B. 'Sie möchten eine neue Funktion entwickeln, ohne den aktuellen stabilen Code zu gefährden.' Lassen Sie die Schülerinnen und Schüler den passenden Git-Befehl oder das passende Konzept (z.B. 'einen neuen Branch erstellen') auf einem Zettel notieren und einsammeln.
Die Schülerinnen und Schüler arbeiten in Kleingruppen an einer kleinen gemeinsamen Aufgabe mit Git. Nach Abschluss bewerten sie gegenseitig, wie gut die Kommunikation und die Nutzung der Git-Befehle im Team funktioniert haben, anhand einer kurzen Checkliste (z.B. 'Wurden Commits sinnvoll benannt?', 'Gab es Konflikte und wie wurden sie gelöst?').
Häufig gestellte Fragen
Was ist der Unterschied zwischen commit, push und pull in Git?
Wie unterstützt Git kollaborative Softwareentwicklung?
Wie hilft aktives Lernen beim Verständnis von Git?
Welche Risiken und Vorteile haben Branches in Git?
Planungsvorlagen für Informatik
Mehr in Objektorientierte Modellierung und Software-Engineering
Einführung in die Objektorientierung
Die Schülerinnen und Schüler identifizieren die Kernkonzepte der Objektorientierung und ihre Vorteile in der Softwareentwicklung.
2 methodologies
Klassen und Objekte
Die Schülerinnen und Schüler definieren Klassen und instanziieren Objekte, um reale Entitäten in Code abzubilden.
2 methodologies
Vererbung und Hierarchien
Die Schülerinnen und Schüler wenden Vererbung an, um Klassenhierarchien zu erstellen und Code-Wiederverwendung zu fördern.
2 methodologies
Polymorphie und Schnittstellen
Die Schülerinnen und Schüler implementieren Polymorphie und nutzen Schnittstellen für flexible und erweiterbare Softwarearchitekturen.
2 methodologies
UML-Klassendiagramme
Die Schülerinnen und Schüler entwerfen Klassendiagramme zur Abbildung komplexer Realwelt-Szenarien unter Berücksichtigung von Vererbung, Assoziationen und Aggregationen.
2 methodologies
UML-Sequenzdiagramme
Die Schülerinnen und Schüler erstellen Sequenzdiagramme, um den zeitlichen Ablauf von Interaktionen zwischen Objekten darzustellen und zu analysieren.
2 methodologies