Git Tutorial für Einsteiger: Versionskontrolle verstehen und anwenden

Git ist das Rückgrat moderner Softwareentwicklung. Ob Sie alleine arbeiten oder im Team: Versionskontrolle ermöglicht es, Änderungen nachzuverfolgen, Fehler rückgängig zu machen und parallel an Features zu arbeiten. In diesem Tutorial lernen Sie Git von Grund auf.

Was ist Git?

Git ist ein verteiltes Versionskontrollsystem, das 2005 von Linus Torvalds für die Entwicklung des Linux-Kernels geschaffen wurde. Jeder Entwickler hat eine vollständige Kopie des Repositories auf seinem Rechner. Das macht Git schnell und ermöglicht Offline-Arbeit.

Die Kernkonzepte: Repository (der Speicherort für Code und Historie), Commit (ein Snapshot der Änderungen) und Branch (eine parallele Entwicklungslinie).

Git einrichten

Nach der Installation konfigurieren Sie Git mit Ihrem Namen und Ihrer E-Mail. Diese Informationen werden in jeden Commit geschrieben:

git config --global user.name "Ihr Name"
git config --global user.email "ihre@email.de"

Die wichtigsten Git-Befehle

Repository erstellen oder klonen

# Neues Repository initialisieren
git init

# Bestehendes Repository klonen
git clone https://github.com/user/repo.git

Status prüfen

# Zeigt geänderte, neue und gelöschte Dateien
git status

Änderungen stagen und committen

# Einzelne Datei stagen
git add datei.txt

# Alle Änderungen stagen
git add .

# Commit erstellen
git commit -m "Aussagekräftige Commit-Nachricht"

Mit Remote arbeiten

# Änderungen vom Server holen
git pull

# Änderungen zum Server senden
git push

# Remote hinzufügen
git remote add origin https://github.com/user/repo.git

Branching verstehen

Branches sind eines der mächtigsten Features von Git. Sie erlauben parallele Entwicklung, ohne den Hauptcode zu beeinflussen.

# Neuen Branch erstellen und wechseln
git checkout -b feature/neues-feature

# Alternativ mit neuerer Syntax
git switch -c feature/neues-feature

# Alle Branches anzeigen
git branch

# Zu bestehendem Branch wechseln
git checkout main
# oder
git switch main

# Branch löschen (nach Merge)
git branch -d feature/neues-feature

Hinweis: Verwenden Sie beschreibende Branch-Namen wie feature/user-login, fix/payment-bug oder refactor/database-layer. Das macht die Arbeit im Team übersichtlicher.

Merging und Konflikte

Nach der Arbeit auf einem Feature-Branch fügen Sie die Änderungen in den Hauptbranch ein:

# Zum Zielbranch wechseln
git checkout main

# Feature-Branch mergen
git merge feature/neues-feature

Manchmal haben zwei Branches die gleiche Datei an der gleichen Stelle geändert. Dann entsteht ein Merge-Konflikt. Git markiert die betroffenen Stellen:

<<<<<<< HEAD
Code aus dem aktuellen Branch
=======
Code aus dem zu mergenden Branch
>>>>>>> feature/neues-feature

Lösen Sie den Konflikt, indem Sie die gewünschte Version behalten, die Markierungen entfernen und dann committen:

git add konflikt-datei.txt
git commit -m "Merge-Konflikt gelöst"

Git Workflows

Es gibt verschiedene etablierte Workflows für die Teamarbeit:

WorkflowBeschreibungGeeignet für
GitHub FlowEinfach: main + Feature-BranchesContinuous Deployment, kleine Teams
Git Flowmain, develop, feature, release, hotfixRelease-basierte Projekte
Trunk-BasedKurze Branches, häufige Merges zu mainErfahrene Teams, CI/CD-Fokus

Praxis-Tipp: Für die meisten Projekte empfehle ich den GitHub Flow. Er ist einfach zu verstehen und funktioniert hervorragend mit Pull Requests und Code Reviews.

Die .gitignore-Datei

Manche Dateien gehören nicht ins Repository: Build-Artefakte, Abhängigkeiten, Umgebungsvariablen. Die .gitignore-Datei definiert, was Git ignorieren soll:

# Beispiel .gitignore

# Abhängigkeiten
node_modules/
vendor/

# Build-Ausgaben
dist/
build/

# Umgebungsvariablen
.env
.env.local

# IDE-Dateien
.idea/
.vscode/

# Logs
*.log

Nützliche Git-Befehle

# Historie anzeigen
git log --oneline

# Änderungen einer Datei anzeigen
git diff datei.txt

# Letzte Änderungen rückgängig machen (vor Commit)
git checkout -- datei.txt

# Letzten Commit ändern (nur lokal!)
git commit --amend

# Änderungen temporär speichern
git stash
git stash pop

Fazit

Git ist unverzichtbar für professionelle Softwareentwicklung. Mit den Grundbefehlen add, commit, push und pull kommen Sie schnell in den Arbeitsfluss. Branching ermöglicht parallele Entwicklung, und mit einem klaren Workflow arbeiten Teams effizient zusammen. Üben Sie die Befehle regelmäßig, dann werden sie zur Routine.

Git-Workflow für Ihr Team?