diff --git a/Extras/Cheatsheet.md b/Extras/Cheatsheet.md new file mode 100644 index 0000000..f3ddf80 --- /dev/null +++ b/Extras/Cheatsheet.md @@ -0,0 +1,164 @@ +# Git Cheat Sheet + +## STAGING & SNAPSHOTS +Arbeiten mit Snapshots und dem Git-Staging-Bereich + +```bash +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 + +```bash +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 + +```bash +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 + +```bash +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 + +```bash +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 + +```bash +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 + +```bash +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 + +```bash +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 + +```bash +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 + +```bash +git config --global core.excludesfile [Datei] +# Systemweite Ignoriermuster für alle lokalen Repositories + +# Beispiel für ein .gitignore +logs/ +*.notes +pattern*/ +```