git ist das meistgenutzte Versionsverwaltungssystem der Welt. Es protokolliert jede Änderung an Dateien, ermöglicht paralleles Arbeiten im Team und macht fehlerhafte Änderungen rückgängig. Ein Repository (Repo) ist der Ordner, in dem git den gesamten Verlauf speichert.
Erste Schritte: Repository anlegen
git init
Macht das aktuelle Verzeichnis zu einem git-Repository. Alternativ ein bestehendes Projekt kopieren: git clone https://github.com/benutzer/projekt.git.
Der Grundzyklus: Status, Staging, Commit
git status
git add datei.txt
git commit -m "Nachricht"
git status— zeigt geänderte Dateien und den aktuellen Zustandgit add— Dateien in die Staging-Area legen („vorbereiten");git add .nimmt alle Änderungengit commit -m "..."— Änderungen mit Nachricht dauerhaft im Verlauf speicherngit log --oneline— kompakte Liste aller Commitsgit diff— zeigt ungestagete Änderungen im Detail
Branches: parallele Entwicklungslinien
git branch feature
git checkout feature
Ein Branch ist eine eigene Arbeitskopie des Projekts. Neue Features entstehen auf eigenen Branches, ohne den Hauptzweig (main) zu stören. Komfortabler als das alte git checkout ist git switch feature (Branch wechseln) und git switch -c neu (Branch anlegen und wechseln).
Mit Remote-Repositories arbeiten
git push origin main
git pull
git push lädt lokale Commits auf den Server (z.B. GitHub), git pull holt Änderungen der anderen und führt sie zusammen. git fetch holt nur, ohne zusammenzuführen.
git remote -v— zeigt die eingerichteten Remote-Adressengit merge branch— einen Branch in den aktuellen Zweig übernehmengit revert <commit>— einen Commit rückgängig machen, ohne die Geschichte umzuschreibengit reset --hard HEAD— alle uncommitteten Änderungen verwerfen (Vorsicht!)
Praxis-Tipp
Commits klein und verständlich halten, .gitignore für Build-Artefakte und Passwörter nutzen, und vor dem Pushen immer git status prüfen. Bei Konflikten zeigt git merge die betroffenen Dateien mit Markern (<<<<<<<), die man manuell auflöst.
Verwandte Grundlagen: ssh, scp und rsync und curl und wget.