Was ist ein Repository?

Repository (kurz: Repo) ist ein zentraler Speicherort für Projektdateien, der mit einem Versionsverwaltungssystem verwaltet wird. Ein Repository fungiert als digitales Archiv, das nicht nur die aktuellen Dateien speichert, sondern deren komplette Entwicklungsgeschichte dokumentiert.

Was wird in einem Repository gespeichert?

  • Quellcodes
  • Dokumentation und README-Dateien
  • Konfigurationsdateien
  • Assets (Bilder, Icons, Schriftarten)
  • Build-Skripte und Abhängigkeiten
  • Jede einzelne Änderung an diesen Dateien über die Zeit

Repository-Hauptfunktionen:
 

Versionsverwaltung

  • Speichert jeden Zustand des Projekts als »Snapshot« (Commit)
  • Ermöglicht das Zurückspringen zu früheren Versionen
  • Zeigt genau, was wann von wem geändert wurde
  • Vergleicht verschiedene Versionen miteinander

Kollaboration

  • Mehrere Entwickler können gleichzeitig arbeiten
  • Jeder hat eine lokale Kopie des gesamten Projekts
  • Änderungen werden über Push/Pull synchronisiert
  • Konflikte werden automatisch erkannt und können gelöst werden

Branching-Strategien

  • Main/Master Branch: Die stabile Hauptversion
  • Feature Branches: Isolierte Entwicklung neuer Funktionen
  • Hotfix Branches: Schnelle Fehlerbehebungen
  • Release Branches: Vorbereitung neuer Versionen

Arten von Repositories:


Lokales Repository

  • Befindet sich auf dem eigenen Computer
  • Vollständige Kopie mit kompletter Historie
  • Arbeiten auch offline möglich

Remote Repository

  • Zentral gehostet (z.B. GitHub, GitLab, Bitbucket)
  • Dient als gemeinsamer Synchronisationspunkt
  • Oft mit zusätzlichen Features wie Issue-Tracking, CI/CD

Wichtige Konzepte:

  • Clone: Erstellen einer lokalen Kopie eines Remote-Repositories
  • Commit: Speichern von Änderungen mit beschreibender Nachricht
  • Push: Hochladen lokaler Änderungen zum Remote-Repository
  • Pull: Herunterladen von Änderungen aus dem Remote-Repository
  • Fork: Erstellen einer eigenen Kopie eines fremden Repositories
  • Pull Request/Merge Request: Anfrage zum Einbinden eigener Änderungen


Praktisches Beispiel: Ein Entwicklerteam arbeitet an einer E-Commerce-Website. Das Repository enthält:

  • Frontend-Code (HTML, CSS, JavaScript)
  • Backend-Code (Python, Datenbank-Schemas)
  • Konfigurationsdateien für verschiedene Umgebungen
  • Dokumentation zur API
  • Automatisierte Tests

Entwickler A arbeitet an einem neuen Zahlungssystem in einem Feature-Branch, während Entwickler B gleichzeitig die Produktsuche verbessert. Beide können unabhängig arbeiten und ihre Änderungen später zusammenführen. Falls ein kritischer Fehler auftritt, kann das Team jederzeit zur letzten funktionierenden Version zurückkehren.

Repository-Vorteile

  • Backup: Vollständige Projekthistorie ist gesichert
  • Transparenz: Alle Änderungen sind nachvollziehbar
  • Experimentierfreiheit: Neue Ideen können in Branches getestet werden
  • Code-Review: Änderungen können vor Integration geprüft werden
  • Continuous Integration: Automatisierte Tests und Deployments möglich
TYPO3 Support Schriftzug neben einer Frau mit Headset

❮   Zurück