Appearance
Kapitel 1: Git Grundlagen
1.1 Was ist Git?
Git ist ein verteiltes Versionskontrollsystem, das entwickelt wurde, um Softwareprojekte effizient zu verwalten.
📖 Definition (einfach erklärt)
Git ist wie ein "Zeitmaschine" für Ihren Code:
- ✅ Es speichert jeden Stand Ihres Projekts
- ✅ Sie können jederzeit zurückkehren zu einem früheren Stand
- ✅ Es ermöglicht Teamarbeit, ohne dass sich Entwickler gegenseitig stören
🎯 Kernkonzepte
| Konzept | Erklärung |
|---|---|
| Repository | Ein Projektordner, der von Git überwacht wird |
| Commit | Ein "Schnappschuss" Ihres Codes zu einem bestimmten Zeitpunkt |
| Branch | Ein separater Entwicklungszweig (wie eine Parallelwelt) |
| Merge | Zusammenführen von Änderungen aus verschiedenen Branches |
💡 Warum Git?
Ohne Git:
projekt_v1.js
projekt_v2.js
projekt_v2_final.js
projekt_v2_final_final.js ← Chaos!
Mit Git:
projekt.js ← Git verwaltet alle Versionen sauber1.2 Die Kernfunktionen von Git
🔹 1. Versionskontrolle (Version Control)
Git speichert jeden Entwicklungsschritt:
- ✅ Rückgängig machen: Fehlerhafte Änderungen können rückgängig gemacht werden
- ✅ Historie anzeigen: Sie sehen alle Änderungen mit Datum und Autor
- ✅ Versionen vergleichen: Unterschiede zwischen zwei Versionen anzeigen
Beispiel:
bash
# Zeige alle Commits an
git log
# Zeige Änderungen im letzten Commit
git show HEAD🔹 2. Teamkollaboration (Multi-Developer Collaboration)
Mehrere Entwickler können gleichzeitig am selben Projekt arbeiten:
- ✅ Branches: Jeder entwickelt in seinem eigenen Zweig
- ✅ Merge: Änderungen werden sicher zusammengeführt
- ✅ Konfliktlösung: Git hilft bei der Lösung von Zusammenstößen
Beispiel:
bash
# Neuen Branch erstellen und wechseln
git checkout -b feature-login
# Änderungen in den Hauptbranch mergen
git checkout main
git merge feature-login🔹 3. Code-Rückverfolgung (Code Traceability)
Sie können jederzeit sehen:
- ✅ Wer hat eine Zeile Code geschrieben?
- ✅ Wann wurde diese Zeile geändert?
- ✅ Warum wurde sie geändert? (Commit-Nachricht)
Beispiel:
bash
# Zeige, wer eine bestimmte Zeile geändert hat
git blame datei.js
# Zeige Änderungen in einer bestimmten Zeile
git log -p -L 10,20:datei.js🔹 4. Backup & Schutz (Backup & Protection)
Ihr Code ist sicher:
- ✅ Lokales Backup: Jeder Entwickler hat eine vollständige Kopie des Repositories
- ✅ Remote Backup: Code wird auf Plattformen wie GitHub/GitLab gesichert
- ✅ Wiederherstellung: Verlorene Dateien können wiederhergestellt werden
Beispiel:
bash
# Repository klonen (vollständige Kopie erstellen)
git clone https://github.com/benutzer/projekt.git1.3 Git vs. SVN (Unterschiede und Vorteile)
📊 Vergleichstabelle
| Merkmal | Git | SVN (Subversion) |
|---|---|---|
| Architektur | Verteilt (Distributed) | Zentralisiert (Centralized) |
| Speed | Sehr schnell (lokal) | Langsamer (Server erforderlich) |
| Offline-Arbeit | ✅ Vollständig möglich | ❌ Nur eingeschränkt |
| Branching | Leichtgewichtig & schnell | Schwergewichtig & langsam |
| Speicherbedarf | Klein (Snapshot-basiert) | Groß (Datei-basiert) |
| Lernkurve | Steiler am Anfang | Einfacher für Einsteiger |
🎯 Warum Git gewinnen?
✅ Vorteil 1: Verteiltes System
- SVN: Wenn der Server abstürzt, kann niemand mehr arbeiten
- Git: Jeder Entwickler hat eine vollständige Kopie des Repositories
✅ Vorteil 2: Branching & Merging
- SVN: Branches sind schwerfällig und langsam
- Git: Branches sind leichtergewichtig und extrem schnell
bash
# Git: Branch in Sekunden erstellen
git branch feature-neu
git checkout feature-neu
# SVN: Branch erstellen dauert lange (Server-Operation)
svn copy ^/trunk ^/branches/feature-neu✅ Vorteil 3: Performance
- SVN: Jede Operation benötigt eine Serververbindung
- Git: Die meisten Operationen sind lokal und blitzschnell
1.4 Git-Kernkonzepte (Vorab-Einführung)
📦 1. Repository (Repo)
Ein Repository ist like ein Projektordner, der von Git überwacht wird.
Zwei Arten:
- Lokales Repository: Auf Ihrem Computer
- Remote Repository: Auf einem Server (GitHub, GitLab, etc.)
bash
# Lokales Repository erstellen
git init
# Remote Repository klonen
git clone https://github.com/benutzer/projekt.git💾 2. Commit
Ein Commit ist wie ein "Schnappschuss" Ihres Codes.
Wichtige Regeln:
- ✅ Jeder Commit sollte eine kleine, logische Einheit sein
- ✅ Schreiben Sie aussagekräftige Commit-Nachrichten
bash
# Änderungen committen
git add datei.js
git commit -m "Feature: Login-Funktion hinzugefügt"🌿 3. Branch (Zweig)
Ein Branch ist ein separater Entwicklungszweig.
Warum Branches?
- ✅ Entwickeln Sie neue Features ohne die Hauptleitung zu beeinflussen
- ✅ Mehrere Entwickler können parallel arbeiten
bash
# Neuen Branch erstellen
git branch feature-payment
# Zum Branch wechseln
git checkout feature-payment
# Kurzform: Erstellen & Wechseln
git checkout -b feature-payment🌐 4. Remote & Local
- Local: Ihr lokales Repository auf dem Computer
- Remote: Das zentrale Repository auf einem Server
bash
# Änderungen zum Remote-Repository pushen
git push origin main
# Änderungen vom Remote-Repository pullen
git pull origin main1.5 Anwendungsszenarien von Git
🔹 Szenario 1: Einzelentwicklung (Personal Development)
Git hilft Ihnen, Ihre persönlichen Projekte zu verwalten:
- ✅ Versionierung: Behalten Sie den Überblick über Änderungen
- ✅ Backup: Ihr Code ist sicher auf GitHub/GitLab
- ✅ Experimente: Probieren Sie neue Ideen in einem Branch aus
Beispiel:
bash
# Neues Projekt starten
mkdir mein-projekt
cd mein-projekt
git init
echo "# Mein Projekt" > README.md
git add .
git commit -m "Initialer Commit"🔹 Szenario 2: Teamkollaboration (Team Collaboration)
Git ist unverzichtbar für Teamarbeit:
- ✅ Parallelentwicklung: Mehrere Entwickler arbeiten gleichzeitig
- ✅ Code-Review: Änderungen werden vor dem Merge überprüft
- ✅ Konfliktlösung: Git hilft bei Zusammenstößen
Beispiel Workflow:
bash
# 1. Neuen Branch erstellen
git checkout -b feature-user-profile
# 2. Änderungen vornehmen
# ... Code schreiben ...
# 3. Änderungen committen
git add .
git commit -m "Feature: User-Profil hinzugefügt"
# 4. Branch pushen
git push origin feature-user-profile
# 5. Pull Request erstellen (auf GitHub/GitLab)🔹 Szenario 3: Open-Source-Beiträge (Open Source Contributions)
Git macht es einfach, zu Open-Source-Projekten beizutragen:
- ✅ Fork: Erstellen Sie eine Kopie eines fremden Repositories
- ✅ Pull Request: Schlagen Sie Änderungen vor
- ✅ Community: Tauschen Sie sich mit anderen Entwicklern aus
Beispiel Workflow:
bash
# 1. Repository forken (auf GitHub)
# 2. Fork klonen
git clone https://github.com/dein-benutzername/fremdes-projekt.git
# 3. Neuen Branch erstellen
git checkout -b fix-bug-123
# 4. Änderungen vornehmen & committen
# ... Bug fixen ...
git add .
git commit -m "Fix: Bug #123 behoben"
# 5. Änderungen pushen
git push origin fix-bug-123
# 6. Pull Request erstellen1.6 Lernplan (Lernroute)
🗺️ Lernroute für Git-Einsteiger
Phase 1: Grundlagen (1-2 Tage)
- ✅ Was ist Git? Warum Git?
- ✅ Installation und Konfiguration
- ✅ Erste Schritte:
git init,git add,git commit
Phase 2: Lokale Operationen (2-3 Tage)
- ✅ Working Directory, Staging Area, Repository
- ✅
git status,git log,git diff - ✅ Änderungen rückgängig machen (
git restore,git reset)
Phase 3: Branching & Merging (3-4 Tage)
- ✅ Branches verstehen und erstellen
- ✅ Branches wechseln (
git checkout,git switch) - ✅ Merging (Zusammenführen) und Konfliktlösung
Phase 4: Remote-Repositories (2-3 Tage)
- ✅ GitHub/GitLab Account erstellen
- ✅
git clone,git push,git pull - ✅ Remote-Branches verstehen
Phase 5: Teamkollaboration (3-5 Tage)
- ✅ Forking-Workflow
- ✅ Pull Requests
- ✅ Code-Reviews
Phase 6: Fortgeschrittene Themen (Optional)
- ✅
git rebase(vs.git merge) - ✅
git cherry-pick - ✅ Git-Internals (Objekte, Referenzen)
📅 Zeitplan (Empfehlung)
| Woche | Thema | Zeitaufwand |
|---|---|---|
| Woche 1 | Grundlagen & lokale Operationen | 1-2 Stunden/Tag |
| Woche 2 | Branching & Merging | 1-2 Stunden/Tag |
| Woche 3 | Remote-Repositories & Kollaboration | 1-2 Stunden/Tag |
| Woche 4 | Praxisprojekte & Vertiefung | 2-3 Stunden/Tag |
💡 Tipps für effektives Lernen
- Praxis vor Theorie: Üben Sie jeden Befehl sofort aus
- Eigene Projekte: Wenden Sie Git auf echte Projekte an
- Fehler machen: Experimentieren Sie – Git kann fast alles rückgängig machen
- Cheat Sheet: Drucken Sie sich eine Git-Befehlsübersicht aus
📝 Zusammenfassung
In diesem Kapitel haben Sie gelernt:
- ✅ Was Git ist: Ein verteiltes Versionskontrollsystem
- ✅ Die Kernfunktionen: Versionskontrolle, Teamkollaboration, Backup
- ✅ Git vs. SVN: Warum Git die bessere Wahl ist
- ✅ Kernkonzepte: Repository, Commit, Branch, Remote/Local
- ✅ Anwendungsszenarien: Einzelentwicklung, Teamwork, Open Source
- ✅ Lernplan: Eine strukturierte Route für Einsteiger
Nächstes Kapitel: Wir werden die Entwicklungsumgebung einrichten (Git installieren, Konfiguration, GUI-Tools).
🔗 Weiterführende Links
Copyright © 2024 Git-Tutorial für Anfänger
