Git – Versionskontrolle verstehen und einrichten: Einsteiger-Guide

Git – Versionskontrolle verstehen und einrichten: Einsteiger-Guide

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:

Die wichtigsten Git-Befehle im Überblick

BefehlFunktion
git initNeues lokales Repository anlegen
git clone <URL>Bestehendes Repository kopieren
git statusGeä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 logCommit-Verlauf anzeigen
git diffUnterschiede 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 pushLokale Commits zum Remote übertragen
git stashÄnderungen temporär weglegen
git reset --soft HEAD~1Letzten 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.

Tipp: Schreibe Commit-Nachrichten im Imperativ und halte sie kurz, aber aussagekräftig: „Fehler in Login-Formular behoben" statt „Fix". Für größere Projekte bietet sich der Conventional Commits Standard an.

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

PlattformEigentümerGratis-PlanCI/CDBesonderheit
GitHubMicrosoftUnbegrenzte öffentliche & private ReposGitHub ActionsGrößte Community, Copilot-Integration
GitLabGitLab Inc.Bis 5 GB StorageGitLab CI/CD (integriert)Self-Hosting möglich, DevOps-Suite
BitbucketAtlassianBis 5 Nutzer, unbegrenzte ReposBitbucket PipelinesEnge 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.

Warnung: Committe niemals sensible Daten wie API-Schlüssel, Passwörter oder private Zertifikate in ein öffentliches Repository. Selbst wenn du die Datei anschließend löschst, bleibt sie in der Git-Historie. Nutze 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~1 rückgängig machen und die Änderungen weiter bearbeiten. Bei bereits gepushten Commits nutzt du besser git revert, um den Verlauf nicht zu beschädigen.