179 lines
3.4 KiB
Plaintext
179 lines
3.4 KiB
Plaintext
# Git Cheat Sheet
|
|
|
|
## Inhaltsverzeichnis
|
|
|
|
- [Konfiguration](#konfiguration)
|
|
- [Repository anlegen](#repository-anlegen)
|
|
- [Status & History](#status--history)
|
|
- [Staging & Commits](#staging--commits)
|
|
- [Branches](#branches)
|
|
- [Mergen & Rebase](#mergen--rebase)
|
|
- [Remotes](#remotes)
|
|
- [Push & Pull](#push--pull)
|
|
- [Dateien löschen / umbenennen](#dateien-löschen--umbenennen)
|
|
- [Undo & Restore](#undo--restore)
|
|
- [Tags](#tags)
|
|
- [Nützliche Kurzbefehle](#nützliche-kurzbefehle)
|
|
|
|
## Konfiguration
|
|
|
|
- Globalen User setzen
|
|
`git config --global user.name "Dein Name"`
|
|
`git config --global user.email "du@example.com"`
|
|
|
|
- Aktuelle Config anzeigen
|
|
`git config --list`
|
|
|
|
## Repository anlegen
|
|
|
|
- Neues Repo im aktuellen Ordner
|
|
`git init`
|
|
|
|
- Vorhandenes Repo klonen
|
|
`git clone <url>`
|
|
|
|
## Status & History
|
|
|
|
- Status der Arbeitskopie
|
|
`git status`
|
|
|
|
- Änderungen vergleichen
|
|
`git diff` Arbeitskopie vs. Index
|
|
`git diff --staged` Index vs. letztem Commit
|
|
|
|
- Commit-Historie
|
|
`git log`
|
|
`git log --oneline --graph --all`
|
|
|
|
## Staging & Commits
|
|
|
|
- Datei zum Index hinzufügen
|
|
`git add <datei>`
|
|
|
|
- Alle Änderungen hinzufügen
|
|
`git add .`
|
|
|
|
- Datei aus dem Index entfernen, aber nicht löschen
|
|
`git reset <datei>`
|
|
|
|
- Commit erstellen
|
|
`git commit -m "Commit-Nachricht"`
|
|
|
|
- Letzten Commit überschreiben, nur lokal verwenden
|
|
`git commit --amend`
|
|
|
|
## Branches
|
|
|
|
- Alle Branches anzeigen
|
|
`git branch`
|
|
|
|
- Neuen Branch erstellen
|
|
`git branch <name>`
|
|
|
|
- In Branch wechseln
|
|
`git switch <name>`
|
|
oder klassisch
|
|
`git checkout <name>`
|
|
|
|
- Branch erstellen und direkt wechseln
|
|
`git switch -c <name>`
|
|
|
|
- Branch löschen lokal
|
|
`git branch -d <name>`
|
|
`git branch -D <name>`
|
|
|
|
## Mergen & Rebase
|
|
|
|
- Branch in aktuellen Branch mergen
|
|
`git merge <branch>`
|
|
|
|
- Interaktives Rebase zum Aufräumen von Commits
|
|
`git rebase -i HEAD~<n>`
|
|
|
|
- Rebase abbrechen
|
|
`git rebase --abort`
|
|
|
|
- Merge-Konflikte prüfen
|
|
`git status`
|
|
`git diff`
|
|
|
|
## Remotes
|
|
|
|
- Remotes anzeigen
|
|
`git remote -v`
|
|
|
|
- Remote hinzufügen
|
|
`git remote add origin <url>`
|
|
|
|
- Remote-URL ändern
|
|
`git remote set-url origin <url>`
|
|
|
|
- Remote entfernen
|
|
`git remote remove <name>`
|
|
|
|
## Push & Pull
|
|
|
|
- In Remote-Branch pushen
|
|
`git push origin <branch>`
|
|
|
|
- Upstream setzen und direkt pushen
|
|
`git push -u origin <branch>`
|
|
|
|
- Änderungen vom Remote holen und mergen
|
|
`git pull`
|
|
|
|
- Nur Daten holen, nicht mergen
|
|
`git fetch`
|
|
|
|
## Dateien löschen / umbenennen
|
|
|
|
- Datei löschen und Commit vorbereiten
|
|
`git rm <datei>`
|
|
|
|
- Datei umbenennen oder verschieben
|
|
`git mv <alt> <neu>`
|
|
|
|
## Undo & Restore
|
|
|
|
- Datei auf HEAD zurücksetzen, nur Arbeitskopie
|
|
`git restore <datei>`
|
|
|
|
- Datei aus Index entfernen, aber in Arbeitskopie behalten
|
|
`git restore --staged <datei>`
|
|
|
|
- Alles auf HEAD zurücksetzen, nicht committed
|
|
`git restore .`
|
|
|
|
- Einzelne Datei aus älterem Commit holen
|
|
`git checkout <commit> -- <datei>`
|
|
|
|
- Branch hart auf Commit zurücksetzen, destruktiv
|
|
`git reset --hard <commit>`
|
|
|
|
## Tags
|
|
|
|
- Tag erstellen lightweight
|
|
`git tag <name>`
|
|
|
|
- Annotierten Tag erstellen
|
|
`git tag -a <name> -m "Beschreibung"`
|
|
|
|
- Tags anzeigen
|
|
`git tag`
|
|
|
|
- Tag pushen
|
|
`git push origin <tag>`
|
|
|
|
## Nützliche Kurzbefehle
|
|
|
|
- Letzten Commit anzeigen
|
|
`git show`
|
|
|
|
- Ignorierte Dateien mit anzeigen
|
|
`git status --ignored`
|
|
|
|
- Stash verwenden
|
|
`git stash`
|
|
`git stash list`
|
|
`git stash apply`
|
|
`git stash drop` |