#!/bin/bash # Setzt Übungsordner zurück, die Teilnehmende während der Schulung angelegt haben. # Führe dieses Skript aus dem Stammverzeichnis des Schulungs-Repos aus. set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" echo "=== Git-Schulung: Übungen zurücksetzen ===" echo "Arbeitsverzeichnis: $SCRIPT_DIR" echo "" # Sicherheitsabfrage read -rp "Alle Übungsordner (meine-notizen, branch-uebung, konflikt-uebung) löschen? [j/N] " antwort if [[ "${antwort,,}" != "j" ]]; then echo "Abgebrochen." exit 0 fi # Übungsordner entfernen (aus Sicherheit nur bekannte Namen) UEBUNGSORDNER=("meine-notizen" "branch-uebung" "konflikt-uebung") for ordner in "${UEBUNGSORDNER[@]}"; do ziel="$SCRIPT_DIR/$ordner" if [[ -d "$ziel" ]]; then rm -rf "$ziel" echo " ✓ Entfernt: $ordner" else echo " – Nicht vorhanden: $ordner (übersprungen)" fi done # konflikt-vorlage.txt zurücksetzen VORLAGE="$SCRIPT_DIR/04-merge-und-konflikte/konflikt-vorlage.txt" if [[ -f "$VORLAGE" ]]; then cat > "$VORLAGE" <<'EOF' Zeile 1: Diese Zeile wird nicht verändert. Zeile 2: Diese Zeile wird auch nicht verändert. Zeile 3: [HIER ÄNDERN] – Diese Zeile wird in beiden Branches unterschiedlich verändert. Zeile 4: Diese Zeile bleibt wieder gleich. Zeile 5: Ende der Vorlage. EOF echo " ✓ konflikt-vorlage.txt zurückgesetzt" fi # Prüfen, ob das Schulungs-Repo selbst sauber ist cd "$SCRIPT_DIR" if git rev-parse --git-dir > /dev/null 2>&1; then STATUS=$(git status --porcelain) if [[ -n "$STATUS" ]]; then echo "" echo " ⚠ Das Schulungs-Repo hat ungespeicherte Änderungen:" git status --short echo "" echo " Tipp: 'git restore .' setzt alle Änderungen zurück." else echo " ✓ Schulungs-Repo ist sauber" fi fi echo "" echo "=== Fertig! Das Repo ist bereit für die nächste Schulung. ==="