Git/Extras/Cheatsheet.md

4.4 KiB

Git Cheat Sheet

STAGING & SNAPSHOTS

Arbeiten mit Snapshots und dem Git-Staging-Bereich

git status
# Zeigt geänderte Dateien im Arbeitsverzeichnis an, die für den nächsten Commit gestaged sind

git add [Datei]
# Fügt eine Datei in ihrem aktuellen Zustand zum nächsten Commit hinzu (staged)

git reset [Datei]
# Entfernt eine Datei aus dem Staging-Bereich, behält jedoch die Änderungen im Arbeitsverzeichnis bei

git diff
# Zeigt den Unterschied zwischen den Änderungen im Arbeitsverzeichnis und den gestagten Änderungen an

git diff --staged
# Zeigt den Unterschied der gestagten Änderungen, die noch nicht committet wurden

git commit -m "[Beschreibung]"
# Commitet die gestagten Änderungen als neuen Commit-Snapshot

SETUP

Benutzerinformationen konfigurieren, die in allen lokalen Repositories verwendet werden

git config --global user.name "[Vorname Nachname]"
# Setzt einen Namen, der bei der Versionsgeschichte für den Kredit der Änderungen verwendet wird

git config --global user.email "[gültige-E-Mail]"
# Setzt eine E-Mail-Adresse, die mit jedem Versionsmarker in der Historie verknüpft wird

git config --global color.ui auto
# Aktiviert automatische Kommandozeilen-Färbung in Git für eine einfachere Ansicht

SETUP & INIT

Benutzerinformationen konfigurieren, Repositories initialisieren und klonen

git init
# Initialisiert ein bestehendes Verzeichnis als Git-Repository

git clone [URL]
# Klont ein gesamtes Repository von einem gehosteten Standort via URL

BRANCH & MERGE

Arbeiten mit Branches, den Kontext wechseln und Änderungen integrieren

git branch
# Listet alle Branches auf, ein * wird neben dem aktiven Branch angezeigt

git branch [branch-name]
# Erstellt einen neuen Branch basierend auf dem aktuellen Commit

git checkout
# Wechselt zu einem anderen Branch und checkt ihn in dein Arbeitsverzeichnis ein

git merge [branch]
# Führt die Historie des angegebenen Branches in den aktuellen Branch zusammen

git log
# Zeigt alle Commits der Historie des aktuellen Branches an

SHARE & UPDATE

Updates von anderen Repositories abrufen und lokale Repositories aktualisieren

git remote add [Alias] [URL]
# Fügt eine Git-URL als Alias hinzu

git fetch [Alias]
# Lädt alle Branches vom angegebenen Git-Remote herunter

git merge [Alias]/[Branch]
# Führt einen Remote-Branch in deinen aktuellen Branch zusammen, um ihn zu aktualisieren

git push [Alias] [Branch]
# Überträgt lokale Branch-Commits zum Remote-Repository-Branch

git pull
# Holt und führt alle Commits aus dem Remote-Tracking-Branch zusammen

TRACKING PATH CHANGES

Dateien und Pfadänderungen versionieren

git rm [Datei]
# Löscht die Datei aus dem Projekt und staged die Entfernung für den Commit

git mv [alter-Pfad] [neuer-Pfad]
# Ändert den Pfad einer bestehenden Datei und staged die Verschiebung

git log --stat -M
# Zeigt alle Commit-Logs an und kennzeichnet alle verschobenen Dateien

TEMPORARY COMMITS

Temporäres Speichern von Änderungen, um den Branch zu wechseln

git stash
# Speichert alle Änderungen, die geändert oder gestaged wurden

git stash list
# Listet die Änderungen im Stash-Stack auf

git stash pop
# Holt die Änderungen vom obersten Stack und schreibt sie in das Arbeitsverzeichnis

git stash drop
# Entfernt die Änderungen vom obersten Stack

REWRITE HISTORY

Branch-Historien umschreiben, Commits aktualisieren und Historie löschen

git rebase [Branch]
# Wendet alle Commits des aktuellen Branches auf den angegebenen Branch an

git reset --hard [Commit]
# Löscht den Staging-Bereich und überschreibt das Arbeitsverzeichnis mit einem bestimmten Commit

INSPECTION & COMPARISON

Logs, Diffs und Objektinformationen anzeigen

git log
# Zeigt die Commit-Historie für den aktuell aktiven Branch an

git log branchB..branchA
# Zeigt die Commits an, die auf BranchA sind, aber nicht auf BranchB

git log --follow [Datei]
# Zeigt alle Commits an, die die Datei verändert haben, auch über Umbenennungen hinweg

git diff branchB...branchA
# Zeigt die Unterschiede zwischen BranchA und BranchB an

git show [SHA]
# Zeigt ein beliebiges Git-Objekt im menschenlesbaren Format an

IGNORING PATTERNS

Verhindern, dass Dateien versehentlich gestaged oder committed werden

git config --global core.excludesfile [Datei]
# Systemweite Ignoriermuster für alle lokalen Repositories

# Beispiel für ein .gitignore
logs/
*.notes
pattern*/