Git-Spickzettel

Wesentliche Git-Befehle für Versionskontrolle – Branching, Commit, Merge und Zusammenarbeit.

Einrichtung & Konfiguration

Git konfigurieren und Ihre Identität einrichten

# Setzen Sie Ihren Namen und Ihre E‑Mail
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# Überprüfen Sie Ihre Konfiguration
git config --list

# Standard-Branch‑Name festlegen
git config --global init.defaultBranch main
Erste Einrichtung
# Standard-Editor festlegen
git config --global core.editor "code --wait"

# Farbausgabe aktivieren
git config --global color.ui auto

# Credential‑Helper einrichten (Windows)
git config --global credential.helper wincred
Zusätzliche Konfiguration

Repositories erstellen

Git-Repositories initialisieren oder klonen

# Neues Repository initialisieren
git init

# Mit spezifischem Branch‑Namen initialisieren
git init -b main

# Ein bestehendes Repository klonen
git clone https://github.com/user/repo.git

# In ein bestimmtes Verzeichnis klonen
git clone https://github.com/user/repo.git my-folder
Repository-Initialisierung

Grundlegender Arbeitsablauf

Übliche Befehle für die tägliche Git‑Nutzung

# Repository‑Status prüfen
git status

# Dateien zum Staging‑Bereich hinzufügen
git add file.txt
git add .                 # Alle Dateien hinzufügen
git add *.js              # Alle JavaScript‑Dateien hinzufügen

# Änderungen committen
git commit -m "Commit message"
git commit -am "Message"  # Verfolgte Dateien hinzufügen und committen

# Commit‑Verlauf anzeigen
git log
git log --oneline         # Kompakte Ansicht
git log --graph           # Branch‑Graph anzeigen
Tägliche Befehle

Verzweigen & Zusammenführen

Branches erstellen und verwalten

# Branches auflisten
git branch                # Lokale Branches
git branch -a             # Alle Branches (lokal + remote)

# Neuen Branch erstellen
git branch feature-branch

# Zu einem Branch wechseln
git checkout feature-branch
git switch feature-branch  # Moderne Alternative

# Neuen Branch erstellen und wechseln
git checkout -b feature-branch
git switch -c feature-branch
Branch‑Verwaltung
# Einen Branch in den aktuellen Branch zusammenführen
git merge feature-branch

# Einen Branch löschen
git branch -d feature-branch    # Sicheres Löschen
git branch -D feature-branch    # Erzwingendes Löschen

# Einen Branch umbenennen
git branch -m old-name new-name
Zusammenführen und Aufräumen

Remote‑Repositories

Arbeiten mit Remote‑Repositories

# Remote‑Repositories auflisten
git remote -v

# Remote‑Repository hinzufügen
git remote add origin https://github.com/user/repo.git

# Änderungen vom Remote holen
git fetch origin

# Änderungen vom Remote pullen
git pull origin main

# Änderungen zum Remote pushen
git push origin main
git push -u origin main   # Upstream setzen und pushen
Remote‑Operationen
# Remote entfernen
git remote remove origin

# Remote umbenennen
git remote rename old-name new-name

# Remote‑URL ändern
git remote set-url origin https://github.com/user/new-repo.git
Remote‑Verwaltung

Änderungen rückgängig machen

Änderungen zurücksetzen oder revertieren

# Änderungen im Arbeitsverzeichnis verwerfen
git restore file.txt
git checkout -- file.txt  # Alte Methode

# Dateien aus dem Staging entfernen
git restore --staged file.txt
git reset HEAD file.txt   # Alte Methode

# Letzten Commit ändern
git commit --amend -m "New message"

# Commit revertieren (erstellt neuen Commit)
git revert <commit-hash>
Rückgängig‑Operationen
# Auf vorherigen Commit zurücksetzen (Vorsicht!)
git reset --soft HEAD~1   # Änderungen gestaged behalten
git reset --mixed HEAD~1  # Änderungen ungestaged behalten
git reset --hard HEAD~1   # Alle Änderungen verwerfen

# Auf spezifischen Commit zurücksetzen
git reset --hard <commit-hash>
Reset‑Operationen

Stashing

Änderungen temporär speichern

# Aktuelle Änderungen stashen
git stash
git stash save "Work in progress"

# Stashes auflisten
git stash list

# Stash anwenden
git stash apply           # Stash behalten
git stash pop             # Anwenden und Stash entfernen

# Spezifischen Stash anwenden
git stash apply stash@{0}

# Stash löschen
git stash drop stash@{0}
git stash clear           # Alle Stashes löschen
Stash‑Verwaltung

Änderungen anzeigen

Unterschiede und Verlauf prüfen

# Unstaged Änderungen anzeigen
git diff

# Staged Änderungen anzeigen
git diff --staged
git diff --cached

# Änderungen zwischen Commits anzeigen
git diff commit1 commit2

# Änderungen in einer bestimmten Datei anzeigen
git diff file.txt
Diff‑Befehle
# Commit‑Details anzeigen
git show <commit-hash>

# Datei bei spezifischem Commit anzeigen
git show <commit-hash>:file.txt

# Anzeigen, wer was in einer Datei geändert hat
git blame file.txt
Inspektionsbefehle

Tagging

Versionstags erstellen und verwalten

# Tags auflisten
git tag

# Leichtgewichtigen Tag erstellen
git tag v1.0.0

# Annotierten Tag erstellen
git tag -a v1.0.0 -m "Version 1.0.0"

# Einen spezifischen Commit taggen
git tag -a v1.0.0 <commit-hash> -m "Message"

# Tags zum Remote pushen
git push origin v1.0.0
git push origin --tags    # Alle Tags pushen

# Tag löschen
git tag -d v1.0.0
git push origin --delete v1.0.0
Tag‑Operationen

Nützliche Befehle

Zusätzliche hilfreiche Git‑Befehle

# Unverfolgte Dateien bereinigen
git clean -n              # Trockenlauf
git clean -f              # Dateien entfernen
git clean -fd             # Dateien und Verzeichnisse entfernen

# Im Repository suchen
git grep "search term"

# Anzeigen, wer Änderungen an einer Datei vorgenommen hat
git log --follow file.txt

# Alias erstellen
git config --global alias.st status
git config --global alias.co checkout
Hilfreiche Werkzeuge
# Änderungen der Datei ignorieren
git update-index --assume-unchanged file.txt

# Änderungen der Datei erneut verfolgen
git update-index --no-assume-unchanged file.txt

# Verfolgte Dateien anzeigen
git ls-files
Dateiüberwachung
Git-Spickzettel