Was ist Git? Versionskontrolle verstehen
Lerne, was Git ist, warum Versionskontrolle wichtig ist und wie Git die Softwareentwicklung revolutioniert hat.
Stell dir vor, du arbeitest an einer Webseite. Du aenderst das Design, und ploetzlich sieht alles kaputt aus. Du wuenschst dir, du koenntest einfach zur vorherigen Version zurueckkehren. Genau dafuer gibt es Git - eine Zeitmaschine fuer deinen Code.
Was ist Versionskontrolle?
Versionskontrolle ist ein System, das Aenderungen an Dateien ueber die Zeit hinweg aufzeichnet. Du kannst jederzeit zu einer frueheren Version zurueckkehren, Aenderungen vergleichen und nachvollziehen, wer was wann geaendert hat.
Das Problem ohne Versionskontrolle
Kennst du das?
projekt/
├── index.html
├── index_backup.html
├── index_final.html
├── index_final_v2.html
├── index_final_v2_wirklich_final.html
└── index_NICHT_LOESCHEN.html
Das ist Chaos. Du weisst nicht mehr, welche Version die richtige ist, was sich geaendert hat oder warum. Versionskontrolle loest genau dieses Problem.
Die Loesung mit Git
Mit Git sieht das so aus:
projekt/
└── index.html ← Immer die aktuelle Version
Git speichert die komplette Historie im Hintergrund. Du kannst jederzeit in die Vergangenheit schauen:
git log --oneline
a3f4b2c Design ueberarbeitet
8e1d9f0 Navigation hinzugefuegt
5c2a1b3 Grundstruktur erstellt
Was ist Git?
Git ist ein verteiltes Versionskontrollsystem (englisch: Distributed Version Control System, kurz DVCS). Es wurde 2005 von Linus Torvalds entwickelt - dem gleichen Entwickler, der auch Linux erschaffen hat.
Die wichtigsten Eigenschaften von Git
| Eigenschaft | Beschreibung |
|---|---|
| Verteilt | Jeder Entwickler hat eine vollstaendige Kopie des Projekts |
| Schnell | Fast alle Operationen laufen lokal auf deinem Computer |
| Sicher | Jede Aenderung wird mit einer Pruefsumme gesichert |
| Kostenlos | Git ist Open Source und komplett kostenlos |
| Branching | Parallele Entwicklungszweige erstellen und zusammenfuehren |
Zentral vs. Verteilt
Aeltere Systeme wie SVN nutzen einen zentralen Server. Wenn der Server ausfaellt, kann niemand arbeiten. Git ist anders:
Zentrales System (SVN): Verteiltes System (Git):
[Server] [Server/GitHub]
/ | \ / | \
[A] [B] [C] [A+Repo] [B+Repo] [C+Repo]
(Jeder hat alles!)
Bei Git hat jeder Entwickler eine vollstaendige Kopie des gesamten Projekts inklusive der kompletten Historie. Du kannst sogar offline arbeiten und deine Aenderungen spaeter synchronisieren.
Warum Git lernen?
1. Git ist Standard in der Branche
Ueber 95% aller Softwareprojekte weltweit nutzen Git. Egal ob du bei einem Startup, einem Konzern oder an Open-Source-Projekten arbeitest - Git-Kenntnisse werden ueberall vorausgesetzt.
2. Zusammenarbeit im Team
Git ermoeglicht es mehreren Entwicklern, gleichzeitig am selben Projekt zu arbeiten, ohne sich gegenseitig in die Quere zu kommen:
# Anna arbeitet am Header
git checkout -b feature/header
# Ben arbeitet am Footer
git checkout -b feature/footer
# Beide arbeiten parallel - ohne Konflikte!
3. Sicherheitsnetz
Mit Git kannst du mutig experimentieren. Wenn etwas schiefgeht, gehst du einfach zurueck:
# Etwas ist kaputt gegangen? Kein Problem!
git checkout -- index.html
# Oder zurueck zum letzten Commit
git reset --hard HEAD
4. Karriere-Booster
Ein aktives GitHub-Profil zeigt potenziellen Arbeitgebern, dass du:
- Code schreiben kannst
- Mit modernen Tools arbeitest
- An Projekten mitarbeitest
- Kontinuierlich lernst
Grundlegende Konzepte
Repository (Repo)
Ein Repository ist dein Projektordner, der von Git ueberwacht wird. Es enthaelt alle Dateien und die komplette Aenderungshistorie.
# Ein neues Repository erstellen
git init mein-projekt
# Ein bestehendes Repository von GitHub herunterladen
git clone https://github.com/benutzer/projekt.git
Commit
Ein Commit ist ein Schnappschuss deines Projekts zu einem bestimmten Zeitpunkt. Stell dir das wie ein Foto vor - es haelt den aktuellen Zustand fest.
# Einen Commit erstellen
git add index.html
git commit -m "Startseite erstellt"
Branch
Ein Branch ist ein unabhaengiger Entwicklungszweig. Du kannst an neuen Features arbeiten, ohne den Hauptcode zu beeinflussen.
# Einen neuen Branch erstellen
git branch neues-feature
# Zum Branch wechseln
git checkout neues-feature
Remote
Ein Remote ist eine Version deines Projekts auf einem Server (z.B. GitHub). Dort kannst du deinen Code mit anderen teilen.
# Code zu GitHub hochladen
git push origin main
# Neueste Aenderungen herunterladen
git pull origin main
Git vs. GitHub
Ein haeufiges Missverstaendnis: Git und GitHub sind nicht dasselbe!
| Git | GitHub |
|---|---|
| Software/Tool | Webplattform/Service |
| Laeuft lokal auf deinem PC | Laeuft im Browser |
| Verwaltet Versionen | Hostet Repositories online |
| Von Linus Torvalds | Von Microsoft (seit 2018) |
| Kostenlos & Open Source | Kostenlos + Premium-Optionen |
| Kommandozeilen-Tool | Webinterface + Features |
Git ist das Werkzeug, das auf deinem Computer laeuft. GitHub ist eine Plattform im Internet, auf der du deine Git-Repositories speichern und mit anderen teilen kannst.
Es gibt auch Alternativen zu GitHub:
- GitLab - aehnlich wie GitHub, auch selbst hostbar
- Bitbucket - von Atlassian, gut integriert mit Jira
- Codeberg - Open-Source-Alternative aus Deutschland
Der Git-Workflow auf einen Blick
So sieht ein typischer Arbeitsablauf mit Git aus:
1. Dateien bearbeiten → Du schreibst Code
2. git add → Aenderungen auswaehlen
3. git commit → Schnappschuss erstellen
4. git push → Zu GitHub hochladen
Das klingt vielleicht noch abstrakt - keine Sorge! In den naechsten Kapiteln wirst du jeden dieser Schritte ausfuehrlich lernen und ueben.
Was kommt als Naechstes?
Im naechsten Kapitel installierst du Git auf deinem Computer und richtest es ein. Du wirst:
- Git herunterladen und installieren
- Deinen Namen und deine E-Mail konfigurieren
- Die Git-Kommandozeile kennenlernen
Zusammenfassung
- Git ist ein verteiltes Versionskontrollsystem, das Aenderungen an Dateien aufzeichnet
- Versionskontrolle schuetzt dich vor Datenverlust und ermoeglicht Teamarbeit
- Git ist der Standard in der Softwareentwicklung - ueber 95% aller Projekte nutzen es
- Git ≠ GitHub: Git ist das Tool, GitHub ist die Plattform
- Die vier Grundkonzepte sind: Repository, Commit, Branch und Remote
- Git ermoeglicht es dir, mutig zu experimentieren - du kannst immer zurueckkehren
Pro-Tipp: Du musst nicht alles auf einmal lernen! Git hat viele Funktionen, aber fuer den Alltag brauchst du nur etwa 10 Befehle. Konzentriere dich zuerst auf die Grundlagen - den Rest lernst du mit der Zeit.