Stell dir vor, du arbeitest stundenlang an einem Projekt, speicherst eine Version, änderst alles – und willst anschließend zur alten Version zurück. Ohne ein geeignetes System sind solche Situationen ein Albtraum. Genau hier setzt Git an: Es ist das weltweit meistgenutzte Werkzeug für Versionskontrolle und bildet die Grundlage moderner Softwareentwicklung. In diesem Guide lernst du alles, was du als Einsteiger wissen musst – von der Installation bis hin zum ersten GitHub-Workflow.
Was ist Versionskontrolle – und warum Git?
Versionskontrolle bedeutet, dass du jeden Entwicklungsstand eines Projekts festhalten kannst. Du kannst zu einem früheren Zustand zurückkehren, Änderungen nachverfolgen und gleichzeitig mit anderen Entwicklern an denselben Dateien arbeiten, ohne dass Konflikte entstehen – zumindest nicht unlösbare.
Git wurde 2005 von Linus Torvalds entwickelt, dem Erfinder des Linux-Kernels. Es ist ein dezentrales Versionskontrollsystem: Jeder Entwickler besitzt eine vollständige Kopie des Projektverlaufs auf seinem Rechner. Das macht Git extrem schnell und unabhängig von einem zentralen Server. Ältere Systeme wie SVN (Subversion) oder CVS waren dagegen zentral organisiert – fiel der Server aus, war die Arbeit blockiert.
Installation unter Windows (Git Bash)
Auf Windows empfiehlt sich die Installation über git-scm.com. Das Installationspaket enthält sowohl die Kommandozeile Git Bash als auch eine einfache grafische Oberfläche. Während der Installation kannst du den Standard-Editor festlegen (empfohlen: Visual Studio Code) und den Umgang mit Zeilenenden konfigurieren (für Windows: „Checkout Windows-style, commit Unix-style endings").
Nach der Installation überprüfst du die Version im Terminal:
git --version
Anschließend richtest du deine Identität ein – diese Daten erscheinen in jedem Commit:
git config --global user.name "Dein Name"
git config --global user.email "[email protected]"
Grundkonzepte: Repository, Commit, Branch, Merge
Bevor du mit Git arbeitest, solltest du vier zentrale Begriffe kennen:
- Repository (Repo): Ein Verzeichnis, das Git verwaltet. Es enthält alle Dateien sowie die vollständige Versionsgeschichte im versteckten Unterordner
.git/. - Commit: Ein Schnappschuss des aktuellen Projektstands. Jeder Commit erhält eine eindeutige ID (SHA-Hash), einen Zeitstempel und eine Beschreibung.
- Branch (Zweig): Eine parallele Entwicklungslinie. Der Standardbranch heißt
main(frühermaster). Neue Features entwickelst du in separaten Branches, damit der Hauptzweig stabil bleibt. - Merge (Zusammenführen): Das Zusammenführen zweier Branches. Git versucht Konflikte automatisch zu lösen; bei widersprüchlichen Änderungen musst du manuell eingreifen.
Die wichtigsten Git-Befehle im Überblick
| Befehl | Funktion |
|---|---|
git init | Neues lokales Repository anlegen |
git clone <URL> | Bestehendes Repository kopieren |
git status | Geänderte Dateien anzeigen |
git add <Datei> | Datei zur Staging Area hinzufügen |
git add . | Alle Änderungen stagen |
git commit -m "Nachricht" | Commit mit Beschreibung erstellen |
git log | Commit-Verlauf anzeigen |
git diff | Unterschiede zwischen Versionen anzeigen |
git branch <Name> | Neuen Branch erstellen |
git checkout <Branch> | Zu Branch wechseln |
git merge <Branch> | Branch in aktuellen mergen |
git pull | Änderungen vom Remote laden und mergen |
git push | Lokale Commits zum Remote übertragen |
git stash | Änderungen temporär weglegen |
git reset --soft HEAD~1 | Letzten Commit rückgängig machen (Änderungen behalten) |
Der typische Workflow: init → add → commit → push
Der grundlegende Ablauf in Git besteht aus vier Schritten. Zunächst initialisierst du das Repository mit git init oder klonst ein bestehendes. Dann bearbeitest du Dateien und fügst Änderungen mit git add zur sogenannten Staging Area hinzu – einer Zwischenstufe, in der du festlegst, was im nächsten Commit landet. Mit git commit -m "Beschreibung" speicherst du diesen Schnappschuss. Abschließend überträgst du den Commit mit git push auf einen Remote-Server wie GitHub.
Branching-Strategie
Für kleine Projekte reicht ein einziger Branch. Sobald mehrere Entwickler beteiligt sind oder du Features parallel entwickelst, empfiehlt sich eine strukturierte Branching-Strategie. Populär ist Git Flow: Es gibt einen stabilen main-Branch, einen develop-Branch für laufende Entwicklung sowie kurzlebige Feature-, Release- und Hotfix-Branches. Eine schlankere Alternative ist GitHub Flow: Jedes Feature erhält einen eigenen Branch, der nach einem Review direkt in main gemergt wird.
GitHub vs. GitLab vs. Bitbucket
| Plattform | Eigentümer | Gratis-Plan | CI/CD | Besonderheit |
|---|---|---|---|---|
| GitHub | Microsoft | Unbegrenzte öffentliche & private Repos | GitHub Actions | Größte Community, Copilot-Integration |
| GitLab | GitLab Inc. | Bis 5 GB Storage | GitLab CI/CD (integriert) | Self-Hosting möglich, DevOps-Suite |
| Bitbucket | Atlassian | Bis 5 Nutzer, unbegrenzte Repos | Bitbucket Pipelines | Enge Jira-Integration |
.gitignore – Dateien ausschließen
Nicht jede Datei soll ins Repository. Passwörter, generierte Dateien oder abhängigkeitsverzeichnisse wie node_modules/ haben dort nichts zu suchen. Die Datei .gitignore im Projektstamm listet Muster auf, die Git ignoriert. Unter gitignore.io kannst du automatisch passende Templates für deine Programmiersprache generieren.
Git GUI-Clients
Die Kommandozeile ist mächtig, aber nicht für jeden intuitiv. Grafische Oberflächen vereinfachen den Einstieg erheblich. GitHub Desktop ist besonders für Einsteiger geeignet und kostenlos verfügbar. GitKraken bietet eine moderne Oberfläche mit visuellem Graph und ist für Privatnutzer kostenlos. Wer ohnehin Visual Studio Code verwendet, kann direkt aus dem Editor committen, pushen und Konflikte lösen – ohne zusätzliche Software.
git filter-branch oder das Tool BFG Repo-Cleaner, um solche Einträge rückwirkend zu entfernen.
Häufige Fehler und Lösungen
„detached HEAD": Du befindest dich auf einem einzelnen Commit statt auf einem Branch. Wechsel mit git checkout main zurück oder erstelle von diesem Zustand einen neuen Branch. Merge-Konflikt: Öffne die betroffenen Dateien, suche nach den Markierungen <<<<<<<, entscheide dich für eine Version und führe git add und git commit aus. Falscher Commit bereits gepusht: Mit git revert <SHA> erstellst du einen neuen Commit, der die Änderungen rückgängig macht, ohne die Histoire zu zerstören.
FAQ zu Git
- Was ist der Unterschied zwischen Git und GitHub?
- Git ist das Versionskontrollsystem selbst – eine Software, die du lokal auf deinem Rechner ausführst. GitHub ist eine Online-Plattform, die Git-Repositories hostet und zusätzliche Funktionen wie Pull Requests, Issues und CI/CD-Pipelines bietet. Git funktioniert auch ohne GitHub.
- Wie groß darf ein Git-Repository sein?
- Es gibt keine feste Grenze, aber Repositories sollten idealerweise unter 1 GB bleiben. GitHub empfiehlt unter 5 GB. Große Binärdateien wie Videos oder PSD-Dateien lagert man besser mit Git LFS (Large File Storage) aus.
- Kann ich Git auch ohne Terminal nutzen?
- Ja. Grafische Tools wie GitHub Desktop, GitKraken oder die Git-Integration in Visual Studio Code erlauben die wichtigsten Aktionen per Mausklick. Das Terminal bleibt aber für komplexere Operationen und Automatisierungen unverzichtbar.
- Was passiert, wenn ich einen falschen Commit gemacht habe?
- Solange der Commit noch nicht gepusht wurde, kannst du ihn mit
git reset --soft HEAD~1rückgängig machen und die Änderungen weiter bearbeiten. Bei bereits gepushten Commits nutzt du bessergit revert, um den Verlauf nicht zu beschädigen.
