Command Description
git status Zeigt den aktuellen Status der Staging und Work Area
git add <filename> Fügt eine Datei der Staging Area hinzu. Falls die Datei einen Konflikt enthielt, wird dieser als “gelöst” markiert.
git reset HEAD <filename> Entfernt die angegebene Datei aus der Staging Area
git checkout -- <filename> Setzt eine modifizierte Datei zurück (Gefährlich: Änderungen an dieser Datei gehen verloren)
git checkout <branchname> Checkt den angegebenen Branch aus / Setzt den HEAD auf den angegebenen Branch
git checkout -b <branchname> Erstellt den Branch und checkt in aus (= git branch + git checkout)
git fetch <remote> Synchronisiert vom Remote Server in die lokale Datenbank
git remote show <remote> Zeigt alle Remote Branches, sowie diejenigen, die für git pull und git push konfiguriert sind.
git push Pusht den aktuellen Branch auf den Server
git config --global alias.<alias> <command> Legt ein Alias für ein Kommando an
git branch Gibt eine Liste aller Branches aus
git branch -v Gibt eine Liste aller Branches inklusive jeweils letztem Commit aus
git branch --merged Gibt eine Liste aller Branches aus, die bereits in den aktuell ausgecheckten Branch gemerged sind
git branch --no-merged Gibt eine Liste aller Branches aus, die noch nicht in den aktuellen Branch gemerged sind.
git branch <branchname> Erstellt einen Branch (aber wechselt nicht in diesen!)
git log --oneline --decorate --graph --all Zeigt die Branches graphisch an
git merge <branchname> Mergt den angegebenen Branch in den aktuell ausgecheckten
git branch -d <branchname> Löscht den angegebenen Branch (nur sofern bereits gemerged)
git branch -D <branchname> Vorsicht Datenverlust: Löscht den angegebenen Branch auch wenn noch nicht gemerged

git clone / fetch / pull

  • git clone kopiert ein gesamtes Repository vom Server auf den lokalen Rechner.
  • git fetch kopiert die Updates aus einem externen Repository von einem server auf den lokalen Rechner (kein Merging!)
  • git pull holt die Updates von einem Server Repository und mergt sie mit dem lokalen Repository, wenn möglich.

Tagging

Tags werden nicht automatisch zum Server gepusht!

Befehl Beschreibung
git tag Listet alle Tags auf (alphabetisch sortiert)
git tag -l "<suchwort>" sucht nach Tags mit dem enthaltenen String, Wildcard * erlaubt
git tag -a <tagname> -m "<message>" erstellt einen Annotated Tag (komplex) zum aktuellen Commit
git tag <tagname> erstellt einen Lightweight Tag zum aktuellen Commit
git tag -a <tagname> <commit-checksum> Tagged einen Commit nachträglich
git push origin <tagname> Pushen eines Tags zum Remote Server
git push origin --tags Pusht alle Tags zum Remote Server, die dort noch nicht vorhanden sind
git checkout -b <new branch name> <tagname> Checkt die Version mit dem spezifizierten Tag in den angegebenen Branch aus

Referenzen

Vielen Dank an Scott Chacon und Ben Straub, die ihr Buch Pro Git hier kostenlos zur Verfügung stellen: https://git-scm.com/book/en/v2.