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:
| Workflow | Beschreibung | Geeignet für |
|---|---|---|
| GitHub Flow | Einfach: main + Feature-Branches | Continuous Deployment, kleine Teams |
| Git Flow | main, develop, feature, release, hotfix | Release-basierte Projekte |
| Trunk-Based | Kurze Branches, häufige Merges zu main | Erfahrene 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?
Ich helfe Ihnen, einen Git-Workflow einzurichten, der zu Ihrem Team und Projekt passt.