Sechs Markdown-Sheets (git, Conventional Commits, Claude CLI, Claude-Config, dotnet CLI, PowerShell) als EmbeddedResource, gerendert im modelosen, per Topmost anpinnbaren CheatSheetsWindow. MarkdownView bekommt dafuer das Opt-in CommandRows: `befehl` - beschreibung wird zu Mono-Chip + Copy-Button, jede ##-Sektion landet in einem Expander. Enthaelt ausserdem: Mission Control wird beim Oeffnen aus dem Minimiert-Zustand geholt, nicht nur aktiviert.
81 lines
3.5 KiB
Markdown
81 lines
3.5 KiB
Markdown
# Git
|
|
|
|
## Start
|
|
- `git clone <url>` — Repository klonen
|
|
- `git init` — neues Repository anlegen
|
|
- `git remote add origin <url>` — Remote verbinden
|
|
|
|
## Stand ansehen
|
|
- `git status -sb` — Kurzstatus mit Branch-Zeile
|
|
- `git diff` — nicht gestagete Änderungen
|
|
- `git diff --staged` — gestagete Änderungen
|
|
- `git diff main...HEAD` — alles, was dieser Branch gegenüber main bringt
|
|
- `git diff --stat` — nur Datei- und Zeilenzähler
|
|
- `git log --oneline --graph --decorate -20` — kompakter Verlauf
|
|
- `git log -p -- <pfad>` — Verlauf einer Datei mit Diffs
|
|
- `git show <commit>` — ein Commit im Detail
|
|
|
|
## Branch
|
|
- `git switch <branch>` — Branch wechseln
|
|
- `git switch -c <name>` — Branch anlegen und wechseln
|
|
- `git switch -` — zurück zum vorherigen Branch
|
|
- `git branch -vv` — Branches mit Upstream und letztem Commit
|
|
- `git branch -d <name>` — gemergten Branch löschen (`-D` erzwingt)
|
|
|
|
## Committen
|
|
- `git add <pfad>` — Änderungen stagen
|
|
- `git add -p` — Änderungen hunk-weise stagen
|
|
- `git commit -m "<text>"` — gestagete Änderungen committen
|
|
- `git commit -- <pfad>` — nur diese Pfade committen
|
|
- `git commit --amend --no-edit` — letzten Commit um die Staging-Area erweitern
|
|
- `git commit --fixup <commit>` — Fixup für späteres Autosquash
|
|
|
|
## Remote
|
|
- `git fetch --all --prune` — alles holen, gelöschte Remote-Branches aufräumen
|
|
- `git pull --rebase` — holen und eigene Commits obendrauf setzen
|
|
- `git push -u origin <name>` — pushen und Upstream setzen
|
|
- `git push --force-with-lease` — sicheres Force-Push, nie plain `--force`
|
|
|
|
## Rebase und Merge
|
|
- `git rebase main` — Branch auf aktuellen main setzen
|
|
- `git rebase -i --autosquash main` — interaktiv aufräumen
|
|
- `git rebase --continue` — nach gelöstem Konflikt weiter
|
|
- `git rebase --abort` — Rebase abbrechen, Ausgangszustand zurück
|
|
- `git merge --no-ff <branch>` — Merge-Commit erzwingen
|
|
- `git merge --abort` — laufenden Merge abbrechen
|
|
- `git cherry-pick <commit>` — einzelnen Commit übernehmen
|
|
|
|
## Konflikte
|
|
- `git diff --name-only --diff-filter=U` — konfliktbehaftete Dateien
|
|
- `git checkout --ours <pfad>` — eigene Seite übernehmen
|
|
- `git checkout --theirs <pfad>` — fremde Seite übernehmen
|
|
- `git mergetool` — konfiguriertes Merge-Tool starten
|
|
|
|
## Rückgängig
|
|
- `git restore <pfad>` — Datei auf HEAD zurücksetzen, Änderungen weg
|
|
- `git restore --staged <pfad>` — unstagen, Änderungen behalten
|
|
- `git reset --soft HEAD~1` — letzten Commit auflösen, Änderungen gestaged behalten
|
|
- `git reset --hard <commit>` — alles verwerfen, nicht rückholbar
|
|
- `git revert <commit>` — Commit durch Gegen-Commit aufheben
|
|
- `git reflog` — Referenzverlauf, um verlorene Commits wiederzufinden
|
|
|
|
## Stash
|
|
- `git stash push -m "<text>"` — Änderungen wegpacken
|
|
- `git stash push -u` — inklusive unversionierter Dateien
|
|
- `git stash list` — Stashes anzeigen
|
|
- `git stash pop` — letzten Stash zurückholen und entfernen
|
|
- `git stash apply <stash>` — anwenden, aber behalten
|
|
|
|
## Worktrees
|
|
- `git worktree list` — alle Worktrees
|
|
- `git worktree add <pfad> <branch>` — Worktree für bestehenden Branch
|
|
- `git worktree add -b <name> <pfad>` — Worktree mit neuem Branch
|
|
- `git worktree remove <pfad>` — Worktree entfernen
|
|
- `git worktree prune` — verwaiste Einträge aufräumen
|
|
|
|
## Suchen
|
|
- `git grep -n "<text>"` — im Arbeitsbaum suchen
|
|
- `git log -S"<text>"` — Commits, die den Text einfügen oder entfernen
|
|
- `git blame -L 40,60 <pfad>` — Zeilenbereich zuordnen
|
|
- `git bisect start` — binäre Suche nach dem Fehler-Commit
|