Git Grundlagen

8 Kernbefehle
Die wichtigsten Git-Befehle für die Versionsverwaltung: git init · git clone · git add · git commit · git push · git pull · git status · git log Git ist das weltweit führende Versionskontrollsystem. Diese Befehle sind essenziell für die tägliche Arbeit mit Git – vom ersten Repository bis zur Zusammenarbeit im Team.

git init – Repository initialisieren

git init [Verzeichnis]
git init git init mein-projekt

git init erstellt ein neues Git-Repository im aktuellen oder im angegebenen Verzeichnis. Es entsteht das Verzeichnis .git, das die gesamte Versionshistorie enthält.

Beispiele
git init # Repository im aktuellen Verzeichnis
git init my-project # Neues Verzeichnis + Repository
git init --bare repo.git # Bare-Repository für Server
git init --initial-branch=main # Hauptbranch auf 'main' setzen
Typische Ausgabe:
Initialized empty Git repository in /pfad/zum/repository/.git/
Tipp: Mit git init --initial-branch=main können Sie den Standard-Branch auf main statt master setzen – das ist heute der empfohlene Standard.

git clone – Repository kopieren

git clone <repository> [verzeichnis]
git clone https://github.com/benutzer/repo.git git clone git@github.com:benutzer/repo.git

git clone kopiert ein vorhandenes Git-Repository (lokal oder remote) in ein neues Verzeichnis. Es wird eine vollständige Kopie mit aller Historie erstellt.

Beispiele
git clone https://github.com/user/project.git # HTTPS
git clone git@github.com:user/project.git # SSH
git clone https://github.com/user/project.git mein-projekt # Mit eigenem Namen
git clone --depth 1 https://github.com/user/project.git # Nur letzter Commit (shallow)
git clone --branch develop https://github.com/user/project.git # Bestimmten Branch
Tipp: Verwenden Sie --depth 1 für große Repositories, wenn Sie nur den aktuellen Stand benötigen – das spart Zeit und Speicherplatz.

git add – Änderungen zum Commit vorbereiten

git add <dateien>
git add datei.txt git add . git add src/

git add fügt Änderungen zur Staging Area hinzu – dem Zwischenspeicher für den nächsten Commit. Nur Dateien, die mit git add markiert wurden, werden im Commit berücksichtigt.

Beispiele
git add datei.txt # Eine Datei hinzufügen
git add *.js # Alle .js-Dateien
git add . # Alle Änderungen im aktuellen Verzeichnis
git add -A # Alle Änderungen (inkl. gelöschte Dateien)
git add -p datei.txt # Interaktiv: Teile der Datei auswählen
Tipp: Mit git add -p können Sie interaktiv einzelne Änderungen in einer Datei auswählen – ideal für saubere Commits ohne zu viele Änderungen auf einmal.

git commit – Änderungen speichern

git commit -m "Nachricht"
git commit -m "Feature: Login implementiert" git commit -am "Fix: Typo behoben"

git commit speichert die in der Staging Area vorbereiteten Änderungen im Repository mit einer beschreibenden Nachricht. -am kombiniert add und commit für bereits getrackte Dateien.

Beispiele
git commit -m "Erster Commit" # Commit mit Nachricht
git commit -am "Update README" # Nur getrackte Dateien
git commit --amend # Letzten Commit ändern
git commit --amend -m "Neue Nachricht" # Commit-Nachricht ändern
Tipp: Schreiben Sie aussagekräftige Commit-Nachrichten im Imperativ: "Add feature", "Fix bug", "Update docs". Das erleichtert die Nachvollziehbarkeit der Historie.

git status & git log – Status und Historie anzeigen

git status · git log [Optionen]
git status git log --oneline --graph

git status zeigt den aktuellen Zustand des Repositories – welche Dateien geändert, neu oder gelöscht wurden. git log zeigt die Commit-Historie mit Nachrichten, Autoren und Zeitstempeln.

Beispiele
git status # Status anzeigen
git status -s # Kurz-Status
git log # Vollständige Historie
git log --oneline # Kompakte Ansicht
git log --graph --oneline --decorate # Graph mit Branches
git log -n 5 # Letzte 5 Commits
git log --since="2 weeks ago" # Commits der letzten 2 Wochen
git log --author="Name" # Von einem Autor
Typische Ausgabe von git log --oneline --graph:
* a1b2c3d (HEAD -> main) Fix: Typo behoben
* d4e5f6g Feature: Login implementiert
* h7i8j9k Initial commit
Tipp: git log --graph --oneline --decorate ist die beste Übersicht über die Git-Historie und Branch-Struktur. Definieren Sie einen Alias: git config --global alias.tree "log --graph --oneline --decorate".

git push & git pull – Mit Remote-Repository synchronisieren

git push · git pull
git push origin main git pull origin main git push -u origin main # Upstream setzen

git push überträgt lokale Commits zum Remote-Repository. git pull lädt Änderungen vom Remote-Repository herunter und führt sie mit dem lokalen Branch zusammen.

Beispiele
git push origin main # Änderungen hochladen
git push origin feature-branch # Feature-Branch pushen
git push -u origin main # Upstream setzen (danach nur 'git push')
git push --force origin main # Force Push (⚠️ vorsichtig!)
git pull origin main # Änderungen herunterladen
git pull --rebase origin main # Rebase statt Merge
⚠️ Warnung: git push --force überschreibt die Historie im Remote-Repository – nur mit Vorsicht und im Team abgestimmt verwenden! Verwenden Sie --force-with-lease für mehr Sicherheit.

Git Grundkonzepte im Überblick

Working Tree Aktuelles Arbeitsverzeichnis
Dateien, an denen Sie arbeiten
Staging Area Zwischenspeicher für den nächsten Commit
git add
Repository .git Verzeichnis mit der Historie
Alle Commits
Commit Gespeicherte Version mit Nachricht
git commit -m
Remote Externes Repository (z.B. GitHub)
git remote add
Branch Unabhängiger Entwicklungszweig
git branch, git checkout

Quick Summary

init
Repository erstellen
clone
Repository kopieren
add
Zum Commit hinzufügen
commit
Änderungen speichern
push
Hochladen
pull
Herunterladen
status
Status anzeigen
log
Historie anzeigen
git init · git add . && git commit -m "Nachricht" · git push origin main · git pull origin main