Spickzettel

Git Spickzettel

Übersicht wichtiger Git-Befehle.

Befehle vor dem Ausführen prüfen

Platzhalter wie commit-hash und branch-name müssen ersetzt werden. Besonders restore, reset, clean und rebase können lokale Daten verwerfen oder Commit-IDs ändern. Prüfen Sie zuerst git status und gegebenenfalls den Dry-Run.

01

Git-Befehle

git init

Neues Git-Repository initialisieren

git init mein-projekt

Erstellt ein neues .git-Unterverzeichnis im aktuellen Verzeichnis

git clone

Repository in ein neues Verzeichnis klonen

git clone https://github.com/username/repository.git

Klont das Repository auf Ihren lokalen Rechner

git add

Dateiinhalt zum Index hinzufügen

git add dateiname.js

Mit git add -p können Sie einzelne Änderungen prüfen und gezielt vormerken

git commit

Änderungen im Repository speichern

git commit -m "Neue Funktion hinzufügen"

Verwenden Sie das -a-Flag, um alle verfolgten Dateien zu committen

git status

Status des Arbeitsbaums anzeigen

git status

Zeigt geänderte Dateien im Arbeitsverzeichnis

git diff

Änderungen zwischen Commits, Commit und Arbeitsbaum usw. anzeigen

git diff

Verwenden Sie git diff --staged, um Staged-Änderungen zu sehen

git log

Commit-Historie anzeigen

git log --oneline

Zeigt die Commit-Historie

git branch

Branches auflisten, erstellen oder löschen

git branch feature-branch

Verwenden Sie das -d-Flag, um einen Branch zu löschen

git checkout

Branch wechseln oder Dateien des Arbeitsbaums wiederherstellen

git checkout feature-branch

Verwenden Sie das -b-Flag, um einen neuen Branch zu erstellen und darauf zu wechseln

git switch

Branch wechseln (neuere Alternative zu checkout)

git switch feature-branch

Verwenden Sie das -c-Flag, um einen neuen Branch zu erstellen und darauf zu wechseln

git merge

Zwei oder mehr Entwicklungshistorien zusammenführen

git merge feature-branch

Fügt den angegebenen Branch in den aktuellen Branch ein

git rebase

Commits auf eine andere Basis neu anwenden

Risiko: mittel
git rebase main

Schreibt die Commit-Historie um, um eine lineare Historie zu erstellen

git tag

Tag-Objekt erstellen, auflisten, löschen oder überprüfen

git tag v1.0.0

Verwenden Sie -a für annotierte Tags mit Nachrichten

git remote

Eine Gruppe von verfolgten Repositories verwalten

git remote -v

Listet alle Remote-Verbindungen auf

git fetch

Objekte und Referenzen von einem anderen Repository herunterladen

git fetch origin

Ruft Änderungen ab, integriert sie aber nicht

git pull

Von einem anderen Repository abrufen und integrieren

git pull origin main

Ruft Änderungen ab und integriert sie gemäß Konfiguration per Merge, Rebase oder Fast-Forward

git push

Remote-Referenzen mit zugehörigen Objekten aktualisieren

git push origin main

Überträgt lokale Commits in das Remote-Repository

git show

Verschiedene Objekttypen anzeigen

git show commit-hash

Zeigt Commit-Daten und Diffs

git blame

Anzeigen, welche Revision zuletzt jede Zeile einer Datei geändert hat

git blame dateiname.js

Zeigt, wer was wann in einer Datei geändert hat

git grep

Zeilen ausgeben, die einem Muster entsprechen

git grep "function"

Nach bestimmten Textfragmenten in verfolgten Dateien suchen

git diff-tree

Inhalt und Modus von Blobs in Bäumen vergleichen

git diff-tree HEAD HEAD~1

Zeigt alle Änderungen zwischen zwei Commit-Punkten

git restore

Dateien des Arbeitsbaums wiederherstellen

Risiko: hoch
git restore --source=HEAD -- dateiname.js

Verwirft nicht vorgemerkte Änderungen an der Datei; vorher git diff prüfen

git reset

Aktuellen HEAD auf den angegebenen Zustand zurücksetzen

Risiko: hoch
git reset --soft HEAD~1

--soft behält Änderungen im Index; --hard kann Index und Arbeitsverzeichnis verwerfen

git revert

Einen neuen Commit erstellen, der vorherige Änderungen rückgängig macht

git revert commit-hash

Sicherer als Reset für gemeinsam genutzte Branches

git clean

Nicht verfolgte Dateien aus dem Arbeitsbaum entfernen

Risiko: hoch
git clean -nd

Sicherer Dry-Run: Erst -f löscht unversionierte Dateien, -d bezieht Verzeichnisse ein

git stash

Änderungen in einem unsauberen Arbeitsverzeichnis beiseitelegen

git stash push -m "WIP: feature"

Verwenden Sie git stash pop, um den Stash anzuwenden und zu entfernen

git cherry-pick

Änderungen aus bestehenden Commits übernehmen

git cherry-pick commit-hash

Wendet Änderungen bestimmter Commits auf den aktuellen Branch an

git bisect

Binäre Suche verwenden, um den Commit zu finden, der einen Bug eingeführt hat

git bisect start git bisect bad git bisect good commit-hash

Hilft, den Commit zu finden, der einen Bug verursacht hat

git worktree

Mehrere Arbeitsverzeichnisse verwalten, die mit demselben Repository verknüpft sind

git worktree add ../pfad branch-name

Erstellt eine verknüpfte Arbeitskopie, um an mehreren Branches zu arbeiten

git submodule

Submodule initialisieren, aktualisieren oder untersuchen

git submodule add https://github.com/username/repo.git

Andere Git-Repositories in Ihr Repository einbinden

git reflog

Reflog-Informationen verwalten

git reflog

Zeigt ein Protokoll der HEAD-Änderungen im lokalen Repository

02

Tastaturkürzel

Tab

Auto-Vervollständigung für Git-Befehle, Branch-Namen und Dateipfade

CtrlR

Im Befehlsverlauf suchen

Durch zuletzt verwendete Befehle navigieren

CtrlL

Terminalbildschirm leeren

CtrlC

Aktuellen Befehl oder Vorgang abbrechen

q

Log-, Diff- oder Hilfeseiten verlassen

03

Profi-Tipps

Benutzerdefinierte Git-Konfiguration

Globale .gitconfig für eine persönliche Arbeitsweise einrichten:

[user]
  name = Ihr Name
  email = [email protected]
[core]
  editor = code --wait
  autocrlf = input
[color]
  ui = auto
[pull]
  rebase = true

Globale .gitignore erstellen

Dateien systemweit ignorieren statt in jedem Projekt einzeln:

# Globale gitignore erstellen
touch ~/.gitignore_global

# Häufig zu ignorierende Dateien hinzufügen
echo ".DS_Store
node_modules/
.vscode/
*.log
.env" >> ~/.gitignore_global

# In Git konfigurieren
git config --global core.excludesfile ~/.gitignore_global
04

Gut zu wissen

Kuratierte Referenz

Eine kompakte Auswahl häufiger Git-Befehle — von Grundlagen bis zu Operationen wie Bisect und Worktree. Optionen und Sonderfälle stehen in der Git-Dokumentation.

Ein Klick zum Kopieren

Jeder Befehl und jedes Beispiel lässt sich per Klick in die Zwischenablage kopieren — kein manuelles Abtippen nötig.

Tastaturkürzel

Die gezeigten Terminalkürzel hängen von Shell, Zeileneditor und Pager ab. Git-Alias werden separat über git config eingerichtet.

Vollständig lokal

Suche und Filter laufen in dieser Seite im Browser. Kopierte Befehle werden erst wirksam, wenn Sie sie selbst in einem Terminal ausführen.

05

Git-Befehle sicher einordnen

Git unterscheidet Arbeitsverzeichnis, Index und Commit-Historie. Ein Befehl kann deshalb nur den Index ändern, Dateien im Arbeitsverzeichnis überschreiben oder die Referenz eines Branches verschieben. Lesen Sie vor einem Rückgängig-Befehl die genaue Variante in der Git-Dokumentation und sichern Sie wichtige, noch nicht versionierte Dateien außerhalb des Repositorys.

Gemeinsam genutzte Historie

git revert ergänzt einen neuen Gegen-Commit und eignet sich deshalb meist besser für bereits veröffentlichte Änderungen. reset und rebase verändern dagegen lokale Referenzen oder Commit-IDs. Ein anschließender Force-Push kann die Arbeit anderer überschreiben und gehört nicht in einen allgemeinen Kopierbefehl.

Vor dem Löschen

git clean -nd zeigt nur an, welche unversionierten Dateien und Verzeichnisse betroffen wären. Erst nach Prüfung würde git clean -fd diese Einträge tatsächlich entfernen. Unversionierte Dateien sind nicht automatisch über Git wiederherstellbar.

06

Häufige Fragen

Was ist ein Git-Spickzettel?

Ein Git-Spickzettel ist eine kompakte Referenz der wichtigsten Git-Befehle mit kurzer Beschreibung und Beispiel, damit Sie Befehle nicht auswendig lernen müssen.

Wie finde ich schnell den passenden Befehl?

Nutzen Sie das Suchfeld oben, um nach Befehlsname oder Stichwort in der Beschreibung zu filtern, oder wählen Sie eine Kategorie wie „Branches und Merging" aus.

Was ist der Unterschied zwischen git merge und git rebase?

git merge fügt die Historie eines anderen Branches als neuen Merge-Commit ein und bewahrt die tatsächliche Reihenfolge. git rebase wendet Ihre Commits auf eine neue Basis an und erzeugt eine lineare Historie, verändert dabei aber Commit-Hashes.

Wie kann ich eine Änderung rückgängig machen, die bereits committet wurde?

Mit git revert commit-hash erstellen Sie einen neuen Gegen-Commit, ohne die vorhandene Historie zu ersetzen. Das ist für bereits geteilte Branches meist die passendere Wahl. git reset kann für rein lokale Commits geeignet sein, verschiebt aber die Branch-Referenz und muss je nach Modus sorgfältig gewählt werden.

Was bewirken Git-Alias?

Git-Alias sind Abkürzungen für häufig verwendete Befehle, z. B. „git co" statt „git checkout". Sie werden einmalig mit git config --global alias.<kurzform> <befehl> eingerichtet.

Wo speichere ich eine globale .gitignore-Datei?

Erstellen Sie eine Datei wie ~/.gitignore_global und registrieren Sie sie mit git config --global core.excludesfile ~/.gitignore_global, damit sie projektübergreifend gilt.

Quellen und Spezifikationen