Skip to content

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

KonzeptErklärung
RepositoryEin Projektordner, der von Git überwacht wird
CommitEin "Schnappschuss" Ihres Codes zu einem bestimmten Zeitpunkt
BranchEin separater Entwicklungszweig (wie eine Parallelwelt)
MergeZusammenfü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 sauber

1.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.git

1.3 Git vs. SVN (Unterschiede und Vorteile)

📊 Vergleichstabelle

MerkmalGitSVN (Subversion)
ArchitekturVerteilt (Distributed)Zentralisiert (Centralized)
SpeedSehr schnell (lokal)Langsamer (Server erforderlich)
Offline-Arbeit✅ Vollständig möglich❌ Nur eingeschränkt
BranchingLeichtgewichtig & schnellSchwergewichtig & langsam
SpeicherbedarfKlein (Snapshot-basiert)Groß (Datei-basiert)
LernkurveSteiler am AnfangEinfacher 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 main

1.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 erstellen

1.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)

WocheThemaZeitaufwand
Woche 1Grundlagen & lokale Operationen1-2 Stunden/Tag
Woche 2Branching & Merging1-2 Stunden/Tag
Woche 3Remote-Repositories & Kollaboration1-2 Stunden/Tag
Woche 4Praxisprojekte & Vertiefung2-3 Stunden/Tag

💡 Tipps für effektives Lernen

  1. Praxis vor Theorie: Üben Sie jeden Befehl sofort aus
  2. Eigene Projekte: Wenden Sie Git auf echte Projekte an
  3. Fehler machen: Experimentieren Sie – Git kann fast alles rückgängig machen
  4. 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).



Copyright © 2024 Git-Tutorial für Anfänger

Frei für alle Anfänger