Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

6.8 Git im Kurs nutzen

Humboldt-Universität zu Berlin, Institut für Bibliotheks- und Informationswissenschaft

In diesem Kapitel lernen Sie, wie Sie Git konkret im Selbstlernkurs Python einsetzen können – sowohl um Kurs-Updates zu erhalten als auch um Ihre eigenen Lösungen zu versionieren.

Das Kurs-Repository

Sie haben diesen Kurs wahrscheinlich bereits als Git-Repository geklont:

git clone https://github.com/schnaitter/Selbstlernkurs_Python.git
cd Selbstlernkurs_Python

Das Repository enthält:

Kurs-Updates abrufen

Wenn neue Kapitel hinzugefügt oder Fehler korrigiert werden, können Sie diese Updates herunterladen:

cd Selbstlernkurs_Python
git pull

Was passiert?

Ihre eigenen Lösungen versionieren

Szenario: Übungsaufgaben mit Git verwalten

Sie bearbeiten die Übungsaufgaben aus dem Kurs und möchten Ihre Fortschritte dokumentieren.

Option 1: Im Kurs-Repository arbeiten (einfach, aber eingeschränkt)

Sie können Ihre Lösungen direkt im Kurs-Ordner speichern:

cd Selbstlernkurs_Python

# Eigenen Lösungsordner erstellen
mkdir meine-loesungen
cd meine-loesungen

# Erste Aufgabe bearbeiten
echo "# Lösung Kapitel 2" > taschenrechner.py

# Committen
git add taschenrechner.py
git commit -m "Lösung: Taschenrechner-Grundfunktionen"

Vorteil: Alles an einem Ort, einfacher Einstieg

Nachteil:

Option 2: Eigenes Repository für Lösungen (empfohlen)

Erstellen Sie ein separates Repository für Ihre Lösungen:

# Neuen Ordner erstellen
mkdir ~/Python-Kurs-Loesungen
cd ~/Python-Kurs-Loesungen

# Git initialisieren
git init

# README erstellen
echo "# Meine Lösungen zum Selbstlernkurs Python" > README.md
git add README.md
git commit -m "Initial commit"

# Optional: Auf GitHub pushen (siehe Kapitel Remote Repositories)

Vorteil:

Empfohlene Ordnerstruktur:

Python-Kurs-Loesungen/
├── 020-Taschenrechner/
│   ├── taschenrechner_v1.py
│   └── taschenrechner_v2.py
├── 040-CSV/
│   ├── csv_einlesen.py
│   └── testdaten.csv
├── 070-MARC-XML/
│   └── marc_parser.py
└── README.md

.gitignore: Dateien von Git ausschließen

Nicht alle Dateien sollten versioniert werden. Typische Beispiele:

.gitignore erstellen

Erstellen Sie im Projektroot eine Datei namens .gitignore:

cd Python-Kurs-Loesungen
nano .gitignore

Typischer Inhalt für Python-Projekte:

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python

# Virtual Environment
.venv/
venv/
ENV/

# Jupyter Notebook
.ipynb_checkpoints

# IDEs
.vscode/
.idea/
*.swp
*.swo

# Betriebssystem
.DS_Store
Thumbs.db

# Eigene Testdaten (falls gewünscht)
testdaten/grosse_datei.csv

# Sensible Daten
config.ini
secrets.json
.env

Committen Sie die .gitignore:

git add .gitignore
git commit -m "Gitignore für Python-Projekt hinzugefügt"

Vorgefertigte .gitignore-Vorlagen

GitHub bietet Vorlagen für verschiedene Sprachen: https://github.com/github/gitignore

Für Python: Python.gitignore

Praktischer Workflow: Eine Übungsaufgabe lösen

Ein typischer Workflow für eine Kurs-Übung:

# 1. Kurs-Updates holen
cd ~/Selbstlernkurs_Python
git pull

# 2. Neues Kapitel lesen, Aufgabe verstehen
# (z.B. Kapitel 040-Projekt_CSV_I)

# 3. In Ihr Lösungs-Repository wechseln
cd ~/Python-Kurs-Loesungen

# 4. Ordner für die Aufgabe erstellen
mkdir 040-CSV-Projekt
cd 040-CSV-Projekt

# 5. Lösungsdatei erstellen
nano csv_einlesen.py
# ... Code schreiben ...

# 6. Ersten Commit erstellen
git add csv_einlesen.py
git commit -m "CSV-Projekt: Grundgerüst erstellt"

# 7. Weiterarbeiten
# ... Code erweitern ...
git add csv_einlesen.py
git commit -m "CSV-Projekt: Fehlerbehandlung hinzugefügt"

# 8. Fertige Lösung
git add csv_einlesen.py
git commit -m "CSV-Projekt: Lösung abgeschlossen"

# 9. Optional: Zu GitHub pushen
git push

Mit Musterlösungen vergleichen

Das Kurs-Repository enthält Musterlösungen im solutions/-Ordner.

cd ~/Selbstlernkurs_Python
ls solutions/

Workflow:

  1. Versuchen Sie zunächst, die Aufgabe selbstständig zu lösen

  2. Committen Sie Ihre eigene Lösung

  3. Schauen Sie sich dann die Musterlösung an

  4. Vergleichen Sie die Ansätze

Unterschiede anzeigen:

# Vergleichen Sie Ihre Lösung mit der Musterlösung
diff ~/Python-Kurs-Loesungen/020-Taschenrechner/taschenrechner.py \
     ~/Selbstlernkurs_Python/solutions/020/taschenrechner.py

Branch-Strategie für Übungen

Für größere Projekte können Sie Branches verwenden:

# Hauptbranch: Fertige, funktionierende Lösungen
git checkout main

# Neuer Branch für Experiment
git checkout -b experiment-alternative-loesung

# Experimentieren
# ... Code schreiben ...
git add .
git commit -m "Alternative Implementierung ausprobiert"

# Falls erfolgreich: Mergen
git checkout main
git merge experiment-alternative-loesung

# Falls nicht erfolgreich: Branch einfach löschen
git checkout main
git branch -d experiment-alternative-loesung

Zusammenarbeit mit Kommiliton*innen

Falls Sie mit anderen Kursteilnehmer*innen zusammenarbeiten möchten:

1. Gemeinsames Repository auf GitHub erstellen

Eine Person erstellt ein Repository und lädt die anderen als Collaborators ein.

2. Alle klonen das Repository

git clone https://github.com/username/kurs-loesungen-gemeinsam.git
cd kurs-loesungen-gemeinsam

3. Feature-Branches nutzen

Jede Person arbeitet in einem eigenen Branch:

# Person A
git checkout -b person-a/csv-aufgabe
# ... arbeiten ...
git push -u origin person-a/csv-aufgabe

# Person B
git checkout -b person-b/marc-aufgabe
# ... arbeiten ...
git push -u origin person-b/marc-aufgabe

4. Regelmäßig synchronisieren

git pull

Typische Fehler vermeiden

❌ Fehler 1: Sensible Daten committen

# NIEMALS tun:
git add passwort.txt
git add config_mit_api_key.ini

Lösung: .gitignore verwenden!

❌ Fehler 2: Riesige Dateien committen

# Vermeiden:
git add bibliotheksdaten_5GB.csv

Git ist für Code optimiert, nicht für große Binärdateien.

Lösung: Große Dateien in .gitignore eintragen oder externe Speicherlösungen nutzen.

❌ Fehler 3: Kurs-Repository modifizieren und dann nicht updaten können

Wenn Sie direkt im Kurs-Repository Änderungen vornehmen, kann git pull zu Konflikten führen.

Lösung: Arbeiten Sie in einem separaten Lösungs-Repository (siehe oben).

Zusammenfassung

Kurs-Repository aktualisieren

cd Selbstlernkurs_Python
git pull

Eigene Lösungen versionieren

# Separates Repository erstellen (empfohlen)
mkdir Python-Kurs-Loesungen
cd Python-Kurs-Loesungen
git init

# .gitignore erstellen
echo "__pycache__/" > .gitignore
echo ".venv/" >> .gitignore
git add .gitignore
git commit -m "Gitignore hinzugefügt"

# Lösungen committen
git add loesung.py
git commit -m "Beschreibung der Lösung"

Wichtige Dateien ausschließen

# .gitignore
__pycache__/
.venv/
.ipynb_checkpoints/
*.pyc
.DS_Store

Im nächsten Kapitel lernen Sie Best Practices und Sicherheitshinweise für die Arbeit mit Git.