Warum Versionskontrolle unverzichtbar ist
Stell dir vor, du arbeitest an einem Textdokument. Jeden Tag speicherst du eine neue Kopie:
bericht_final.docx
bericht_final2.docx
bericht_final_reallyfinal.docx
Irgendwann weißt du nicht mehr, welche Version die richtige ist. Genau dieses Problem hatten Programmierer früher bei Quellcode. Mehrere Leute arbeiteten gleichzeitig am selben Projekt, verschickten Dateien per E-Mail oder FTP und überschrieben versehentlich Änderungen.
Die Lösung: Versionskontrollsysteme (VCS).
Ein VCS speichert jede Änderung am Code wie einen „Schnappschuss“. Du kannst jederzeit zurückspringen, vergleichen, wer was geändert hat, und mehrere Versionen parallel entwickeln.
Zentralisierte vs. verteilte Versionskontrolle
Frühere Systeme wie SVN oder CVS waren zentralisiert:
- Es gab einen Hauptserver.
- Jeder Entwickler checkte Dateien aus, bearbeitete sie, und spielte sie wieder ein.
- Problem: Ohne Verbindung zum Server konnte man nicht arbeiten.
Git hingegen ist dezentral:
- Jeder Entwickler hat eine komplette Kopie des Repositories auf seinem Rechner.
- Man kann lokal arbeiten, Commits erstellen, Branches anlegen – ganz ohne Internet.
- Später werden die Änderungen mit einem zentralen Remote (z. B. GitHub) abgeglichen.
👉 Vorteil: Schnell, robust und flexibel.
Was ist Git eigentlich?
Git ist ein verteiltes Versionskontrollsystem, entwickelt 2005 von Linus Torvalds für die Entwicklung des Linux-Kernels.
Wichtige Eigenschaften:
- Snapshots, keine Diffs: Git speichert nicht einfach Unterschiede, sondern komplette Zustände (mit internen Optimierungen).
- Branches sind leichtgewichtig: Ein neuer Branch kostet fast nichts und macht paralleles Arbeiten extrem einfach.
- Unveränderlichkeit: Ein Commit hat eine eindeutige Prüfsumme (SHA-1-Hash). Sobald er gespeichert ist, bleibt er für immer gleich.
Git einrichten: git config
Bevor man loslegt, muss Git wissen, wer Änderungen macht. Ohne diese Angaben kann man keine Commits erstellen – Git weigert sich dann.
Globale Konfiguration (für den gesamten Rechner)
git config --global user.name "Max Mustermann"
git config --global user.email "max@example.com"
user.name
= dein Name oder Nickname.user.email
= deine E-Mail-Adresse (wichtig für Dienste wie GitHub).
Überprüfung der Konfiguration
git config --list
Zeigt alle gesetzten Werte an.
Repository-spezifische Konfiguration
Falls du für ein Projekt andere Angaben machen willst:
git config user.name "Andere Identität"
git config user.email "andere@example.com"
👉 Diese überschreiben die globalen Werte, gelten aber nur in diesem Repository.
Weitere nützliche Einstellungen
- Standard-Editor für Commit-Messages:
git config --global core.editor "nano"
- Farben für bessere Lesbarkeit:
git config --global color.ui auto
- Standard-Branch auf
main
setzen (stattmaster
):
git config --global init.defaultBranch main
Zentrale Begriffe
Repository
Ein Git-Repository ist das „Projektarchiv“.
- Enthält den kompletten Code und die Historie.
- Lokal: auf deinem Rechner.
- Remote: auf Servern wie GitHub, GitLab oder Bitbucket.
👉 Befehl:
git init
erstellt ein neues Repository im aktuellen Verzeichnis.
Commit
Ein Commit ist eine Momentaufnahme deiner Arbeit.
- Enthält: welche Dateien geändert wurden, von wem, wann.
- Hat eine eindeutige ID (Hash).
- Kann jederzeit zurückgerufen oder verglichen werden.
👉 Beispiel:
git add index.html
git commit -m "Startseite hinzugefügt"
Branch
Ein Branch ist ein Zeiger auf eine Reihe von Commits.
- Standard-Branch heißt oft
main
. - Neue Branches erlauben parallele Entwicklung ohne das Hauptprojekt zu stören.
👉 Beispiel:
git branch feature-login
git checkout feature-login
Merge
Wenn ein Feature fertig ist, wird es in den Hauptbranch integriert. Das nennt man Merge.
- Git kombiniert die Änderungen automatisch, solange sie sich nicht widersprechen.
- Konflikte müssen manuell gelöst werden.
Git als Zeitmaschine
Eine gute Analogie: Git ist wie eine Zeitmaschine für Code.
- Jeder Commit ist ein „Speicherpunkt“.
- Du kannst zu jedem Zeitpunkt in der Vergangenheit zurückspringen.
- Du kannst alternative Zeitlinien (Branches) anlegen und wieder zusammenführen.
👉 Das macht Git so mächtig – und gleichzeitig sicher. Selbst wenn du „etwas kaputt machst“, kannst du immer zurück.
Erste Schritte mit Git
Installation
- Windows: git-scm.com bietet einen Installer.
- macOS: Oft schon vorinstalliert, sonst via Homebrew (
brew install git
). - Linux: Über Paketmanager (
apt install git
,dnf install git
, etc.).
Neues Projekt starten
mkdir meinprojekt
cd meinprojekt
git init
Ergebnis: ein versteckter Ordner .git
, in dem Git alle Informationen speichert.
Dateien hinzufügen
echo "Hallo Welt" > readme.txt
git add readme.txt
git commit -m "Readme erstellt"
Status prüfen
git status
Zeigt, welche Dateien geändert, hinzugefügt oder gelöscht wurden.
Historie ansehen
git log
Listet alle Commits mit Autor, Datum und Nachricht.
Warum Git so beliebt ist
- Flexibilität: Egal ob Solo-Entwickler oder tausendköpfiges Open-Source-Projekt.
- Geschwindigkeit: Lokale Operationen sind blitzschnell, weil alles auf der Festplatte passiert.
- Community & Tools: GitHub, GitLab, Bitbucket – riesige Ökosysteme.
- Sicherheit: Durch Hashes und unveränderbare Commits schwer zu manipulieren.
Typische Einsatzszenarien
- Einzelentwickler
- Eigene Projekte versionieren.
- Jederzeit zurückspringen.
- Teamarbeit
- Mehrere Leute entwickeln parallel.
- Änderungen werden über Branches und Pull Requests integriert.
- Open Source
- Projekte auf GitHub oder GitLab.
- Jeder kann Beiträge (Pull Requests) einreichen.
Schreibe einen Kommentar