git init
Initialisiert ein Repository im aktuellen Verzeichnis
Praxisbeispiel
git init # oder mit einem Namen
git init myproject
developer reference
Praktische Referenz für Git im Alltag mit Suche, schnellem Kopieren und PDF-Druck.
42 Befehle sichtbar
git init
Initialisiert ein Repository im aktuellen Verzeichnis
git init # oder mit einem Namen
git init myproject
git clone https://github.com/user/repo.git
# in ein bestimmtes Verzeichnis
git clone <url> myfolder
# nur der letzte Commit
git clone --depth 1 <url>
git remote add origin <url>
Verknuepft ein lokales Repository mit einem Remote
git remote add origin https://github.com/user/repo.git
git status
Zeigt geaenderte, vorgemerkte und unversionierte Dateien
git status
git status -s # kompakte Ausgabe
git add <file>
Fuegt Dateien zum Staging-Bereich hinzu
git add index.html
git add . # alle Änderungen
git add -p # interaktiv, Abschnitt für Abschnitt
git commit -m "<msg>"
Committet vorgemerkte Aenderungen mit einer Nachricht
git commit -m "feat: add login page"
git commit -am "fix: typo" # verfolgte Dateien vormerken und committen
git commit --amend
Bearbeitet den letzten Commit, seine Nachricht oder seinen Inhalt
Ersetzt den letzten Commit. Änderungen an veröffentlichten Commits vorher abstimmen.
git commit --amend -m "new message"
# vergessene Dateien hinzufügen
git add file.txt && git commit --amend --no-edit
git rm --cached <file>
Entfernt die Datei aus dem Git-Index; die lokale Datei bleibt. Committen, um die Verfolgung zu beenden.
Der nächste Commit entfernt die Datei aus dem Repository; die lokale Kopie bleibt.
git rm --cached secret.env
git stash
Legt nicht committete Aenderungen im Stash ab
git stash
git stash push -m "wip: login form"
git stash list
Listet alle Stashes
git stash list
git stash pop
Wendet einen Stash an und entfernt ihn nur bei erfolgreicher Anwendung
Konflikte prüfen. Git behält den Stash bei fehlgeschlagener Anwendung.
git stash pop
git stash pop stash@{2}
git stash apply [stash@{n}]
Wendet einen Stash an, ohne ihn zu entfernen
git stash apply stash@{1}
git stash drop [stash@{n}]
Loescht einen bestimmten Stash
Löscht den ausgewählten Stash. Wiederherstellung ist nicht garantiert.
git stash drop stash@{0}
git stash branch <branch>
Erstellt einen Branch aus einem Stash und wendet ihn an
git stash branch feature/login stash@{0}
git branch
Listet lokale Branches; -a zeigt auch Remotes
git branch
git branch -a
git switch -c <name>
Erstellt einen neuen Branch und wechselt dorthin
git switch -c feature/auth
# ältere Syntax
git checkout -b feature/auth
git switch <branch>
Wechselt zu einem vorhandenen Branch
git switch main
git switch - # vorheriger Branch
git merge <branch>
Fuehrt einen Branch in den aktuellen Branch zusammen
git switch main
git merge feature/auth
git merge --no-ff feature/auth # Merge-Commits erhalten
git rebase <branch>
Setzt die Branch-Historie auf eine neue Basis
Schreibt den Verlauf um. Rebase eines gemeinsamen Branches vorher abstimmen.
git switch feature/auth
git rebase main
git rebase -i HEAD~3 # interaktiv: zusammenfassen oder umordnen
git cherry-pick <hash>
Wendet einen bestimmten Commit auf den aktuellen Branch an
git cherry-pick a3f1c2e
git cherry-pick a3f1c2e^..b7d9e0f # Commit-Bereich
git branch -d <branch>
Loescht einen Branch nur, wenn er bereits gemergt ist
git branch -d feature/auth
git branch -D feature/auth # Löschen erzwingen
git remote -v
git fetch origin
git fetch --all
git pull
git pull --rebase # mit Rebase
git push <remote> <branch>
Sendet Commits an den Remote
git push origin main
git push -u origin feature/auth # Upstream-Verfolgung setzen
git push --force-with-lease
Sichererer Force Push; scheitert bei neuen Remote-Commits
Schreibt den Remote-Verlauf um. Branch und erwarteten Remote-Stand prüfen.
git push --force-with-lease
git log --oneline --graph
Kompakte Historie mit Branch-Graf
git log --oneline --graph --decorate
git log -5 --oneline # letzte 5 Commits
git log -S "<string>"
Findet Commits, die eine Zeichenkette hinzufuegen oder entfernen
git log -S "apiKey" --oneline
git blame <file>
Zeigt, wer jede Dateizeile zuletzt geaendert hat
git blame src/main.py
git blame -L 10,20 src/main.py
git reflog
# verlorenen Commit wiederherstellen
git checkout HEAD@{2}
git restore <file>
Verwirft lokale, nicht vorgemerkte Aenderungen
Verwirft nicht vorgemerkte Änderungen der Datei. Git kann sie eventuell nicht wiederherstellen.
git restore index.html
git restore . # alle Dateien
git restore --staged <file>
Entfernt aus dem Staging, behaelt die Aenderungen
git restore --staged secret.env
git reset HEAD~1
Macht den letzten Commit rueckgaengig, behaelt die Aenderungen
Mixed-Reset behält Dateien, leert aber die Vormerkung. --hard verwirft auch Änderungen verfolgter Dateien.
git reset --soft HEAD~1 # Änderungen vorgemerkt lassen
git reset HEAD~1 # Vormerkung entfernen, Dateien behalten
git reset --hard HEAD~1 # VERWIRFT lokale Änderungen
git revert <hash>
Erstellt einen Commit, der einen anderen Commit rueckgaengig macht
git revert a3f1c2e --no-edit
git clean -fd
Loescht unversionierte Dateien und Verzeichnisse; irreversibel
Löscht unversionierte Dateien und Verzeichnisse dauerhaft. Zuerst mit git clean -nd prüfen.
git clean -fdn # Vorschau
git clean -fd
git diff
Nicht vorgemerkte Aenderungen
git diff
git diff src/main.py
git diff --staged
Vorgemerkte Aenderungen bereit fuer den Commit
git diff --staged
git diff <branch1> <branch2>
Vergleicht zwei Branches
git diff main feature/auth
git diff --name-only main feature/auth
git config --global user.name "<name>"
Setzt den globalen Benutzernamen
git config --global user.name "Enzo"
git config --global user.email "<email>"
Setzt die globale Benutzer-E-Mail
git config --global user.email "enzo@example.com"
git config --global alias.<name> "<cmd>"
Erstellt einen Alias fuer einen Befehl
# git lg = grafischer Verlauf
git config --global alias.lg "log --oneline --graph --decorate"
git config --list
Zeigt die gesamte aktive Konfiguration
git config --list --show-origin
Verwende git restore --staged <file>. Um die Verfolgung zu beenden und die lokale Datei zu behalten, nutze git rm --cached <file> und committe die Entfernung.
Verwende PDF drucken. Die Druckansicht enthält alle Befehle und Beispiele, auch in durch die Suche ausgeblendeten Abschnitten.
Ja. Stelle die statischen Dateien über einen lokalen HTTP-Server bereit. Suche, Filter und Kopieren laufen im Browser; der Regex-Tester benötigt HTTP mit erlaubten Workern.