# Nachdenkzettel: Arbeiten mit Git und im Team

Bevor Sie mit dem Nachdenkzettel beginnen, überlegen Sie sich einen Projekttitel und beginnen mit dem Auschecken des Standardprojekts.
1) Gehen sie auf https://gitlab.mi.hdm-stuttgart.de/se-2/SE2StartupProject und klicken sie auf "Fork".
2) Dort geben Sie dem Projekt einen **neuen** Namen (und Kürzel) und erlauben die HdM-interne Verwendung.
3) Fügen Sie Ihre Teammitglieder dem Projekt hinzu. Fügen Sie schwind@hdm-stuttgart.de als Reviewer hinzu.
4) Öffnen und kompilieren Sie das Projekt gemäß der Anweisungen in der `Readme.md`.

## 1. Warum ein Versionsverwaltungssystem?
Beschreiben Sie in einem kurzen zusammenhängenden Absatz, warum es sinnvoll ist, in Ihrem Projekt ein Versionsverwaltungssystem wie Git zu verwenden. Gehen Sie dabei darauf ein,
a) wozu sich Git lohnt,  
b) welche Vorteile für Sie und Ihr Team entstehen und  
c) welche typischen Probleme sich dadurch vermeiden lassen.

## 2. Welche Dateien gehören ins Repository?
Erläutern Sie, welche Inhalte in Ihr Repository gehören – und welche besser nicht. Adressieren Sie dabei folgende Beispiele:
 - Quellcode (`.java`)
 - Konfigurationen (`.xml`, `.json`)
 - Projektressourcen (Bilder, Audio, Video)
 - UML-Diagramme (z.B. `.svg`)
 - Dokumentationen (Javadocs)
 - Notizen 
 - Datenbankschemata (z.B. `.sql`)
 - Externe Packages und Plugins (z.B. `.jar`)
 - Installationsdateien
 - Log-Dateien 

Begründen Sie jeweils kurz Ihre Entscheidung.

## 3. Merge-Konflikte
a) Erzeugen Sie **selbst einen Merge-Konflikt** in Ihrem Projekt oder in einem kleinen Testbeispiel und zeigen Sie, wie dieser entstanden ist.  
b) Dokumentieren Sie, woran Sie den Merge-Konflikt erkannt haben, und erläutern Sie Schritt für Schritt, wie Sie ihn aufgelöst haben.  
c) Beschreiben Sie, welche Hilfsmittel oder Werkzeuge Sie dabei verwendet haben.

## 4. Team-Zusammenarbeit im Projekt
a) Stellen Sie Ihr Projekt kurz vor.  
b) Beschreiben Sie, wer in Ihrem Team welche Aufgaben übernehmen möchte.  
c) Erläutern Sie, wie Sie Ihre Zusammenarbeit organisieren wollen (z. B. Absprachen, Aufgabenverteilung, Branches, Reviews, Meetings).  
d) Legen Sie fest, wann und wie oft Sie Änderungen pushen wollen, um Konflikte möglichst zu vermeiden.  
e) Beschreiben Sie, wie Sie Ihre Commit-Messages gestalten wollen.

## 5. Einsatz von KI im Projekt
Erklären Sie, wie Sie KI in Ihrem Projekt einsetzen möchten.

Gehen Sie dabei insbesondere darauf ein:
a) Für welche Aufgaben Sie KI verwenden wollen (es gibt hier falsche und richtige Antworten!)
b) Welche KI-Werkzeuge Sie einsetzen möchten
c) Wie Sie sicherstellen, dass Sie die erzeugten Ergebnisse verstehen und überprüfen
d) Welche Regeln Sie sich im Team für den Einsatz von KI geben


