Oh My Zsh Git Plugin, die Aliase die euch wirklich Zeit sparen

Von Roland Golla
0 Kommentar
Surreales Gemälde mit Elefant, Baum aus Git Branches und Schild Git Plugin

git status, git diff, git add, git commit. Wer das zwanzigmal am Tag tippt, tippt es im Jahr ein paar tausend Mal. Das Oh My Zsh Git Plugin macht daraus gst, gd, ga und gcmsg. Klingt nach wenig. Im Alltag ist es der größte Zeitgewinn, den eine Shell überhaupt bieten kann.

Das Plugin ist bei jeder Oh My Zsh Installation schon aktiv. Viele nutzen trotzdem nur drei, vier Kürzel und wissen nicht, was sonst drinsteckt. Dieser Beitrag zeigt die Aliase, die sich lohnen, die neuen aus dem aktuellen Update und die paar, bei denen ihr aufpassen müsst. Alles rund um Installation, Themes und Performance steht in unserem Glossar Eintrag Oh My Zsh, das Zsh Framework für Plugins und Themes.

Git Workflow im Team sauber aufsetzen: Wir richten Pipelines ein, in denen jeder Commit durch Tests und statische Analyse läuft, bevor er gemergt wird. Egal ob ein Mensch oder ein Agent ihn geschrieben hat. Zum NCA CI/CD Pipeline Setup

Oh My Zsh Git Plugin aktivieren

In einer frischen Installation steht git schon in der plugins Liste. Falls nicht, tragt es in der .zshrc ein. Die Plugins werden durch Leerzeichen getrennt, nie durch Kommas.

# ~/.zshrc
plugins=(git)

# danach neu laden
source ~/.zshrc

# alle Git Aliase anzeigen
alias | grep git

Der letzte Befehl ist der wichtigste Tipp in diesem Beitrag. Wer wissen will, was hinter einem Kürzel steckt, schaut nach. Ein Alias, den ihr nicht versteht, gehört nicht in euren Alltag.

Die Git Aliase für jeden Tag

Das Plugin bringt weit über hundert Kürzel mit. Diese hier tragen den Großteil der Arbeit:

AliasBefehlWofür
gstgit statusWas hat sich geändert
gdgit diffÄnderungen Zeile für Zeile lesen
gdcagit diff --cachedPrüfen, was wirklich im Commit landet
ga / gaagit add / git add --allDateien stagen
gcmsggit commit --messageCommit mit Nachricht
gsw / gswcgit switch / git switch -cBranch wechseln oder neu anlegen
gl / gpgit pull / git pushSynchronisieren
gpsupgit push --set-upstream origin plus aktueller BranchNeuen Branch das erste Mal pushen
gcmgit checkout auf main oder masterZurück zum Hauptbranch
glogit log --oneline --decorateKompakte History

Praktisch ist gcm. Das Plugin erkennt selbst, ob euer Hauptbranch main oder master heißt. Dafür sorgt die Funktion git_main_branch, die viele Aliase intern nutzen. Ihr müsst euch nicht merken, wie das Repository gerade tickt.

Neu im aktuellen Update

Oh My Zsh hat keine Release Notes. Wer omz update ausführt, sieht nur, dass sich etwas getan hat. Beim Git Plugin sind diesmal einige nützliche Kürzel dazugekommen:

  • gshs zeigt den letzten Commit mit git show --stat. Ihr seht sofort, welche Dateien betroffen sind, ohne durch den ganzen Diff zu scrollen.
  • gsnut ist git status --untracked-files=no. Ideal in Projekten mit vielen generierten Dateien, die den Status zumüllen.
  • glom listet alle Commits, die euer Branch dem Hauptbranch voraus hat. Genau das, was gleich im Pull Request landet.
  • glolm zeigt die History des Hauptbranches als Graph mit Autor und Zeitangabe.
  • grbmi und grbmia starten einen interaktiven Rebase auf den Hauptbranch, die zweite Variante mit Autosquash.
  • gsuri aktualisiert alle Submodules rekursiv und initialisiert fehlende.
  • gbcopy kopiert den aktuellen Branchnamen in die Zwischenablage. Perfekt für Ticket Kommentare und Chat Nachrichten.
# Was ist in meinem Branch, was noch nicht im Hauptbranch ist?
glom

# Was hat der letzte Commit angefasst?
gshs

# Branchnamen kopieren und ins Ticket einfügen
gbcopy

Aufräumen mit dem Git Plugin

Nach ein paar Wochen liegen lokal Dutzende alte Branches herum. Das Plugin hat dafür zwei Funktionen. gbda löscht alle Branches, die bereits gemergt sind. gbds erkennt zusätzlich Branches, die per Squash Merge im Hauptbranch gelandet sind. Bei sehr vielen Branches wird das langsam, das steht auch so in der Dokumentation. Wie ihr das von Hand macht, zeigt unser älterer Beitrag zu git branch delete merged.

Für Zwischenstände gibt es gwip und gunwip. Der erste committet alles als Work in Progress, der zweite holt den Commit wieder zurück, wenn er oben liegt. Das ist praktisch, wenn ihr schnell den Branch wechseln müsst. Für längere Pausen ist gsta für git stash push die sauberere Wahl.

Vorsicht bei diesen Git Aliasen

Kurze Befehle machen gefährliche Befehle bequem. Drei Kürzel solltet ihr kennen, bevor ihr sie aus Versehen tippt:

  • gpf! ist ein echtes git push --force. Fremde Commits auf dem Remote sind danach weg.
  • grhh ist git reset --hard. Alle ungesicherten Änderungen im Arbeitsverzeichnis verschwinden.
  • gpristine setzt hart zurück und löscht zusätzlich alle ungetrackten Dateien, auch die ignorierten. Eure lokale .env inklusive.

Für den Force Push gibt es eine sichere Variante. gpf ohne Ausrufezeichen nutzt --force-with-lease und ab Git 2.30 zusätzlich --force-if-includes. Damit überschreibt ihr nur, was ihr selbst schon gesehen habt. Wenn ihr nach einem Rebase pushen müsst, nehmt immer diese Version.

Git Aliase im Team und mit Coding Agents

Aliase sind persönlich. Sobald mehrere Leute zusammenarbeiten, wird das zum Thema. In Pair Programming Sessions und in Doku sollten die vollen Git Befehle stehen. Sonst versteht nur, wer dasselbe Setup hat. In Team Doku und Readmes schreibt ihr also git status, nicht gst.

Bei Coding Agents gilt dasselbe. Ein Agent wie OpenCode führt Befehle in einer eigenen Shell aus und nutzt die vollen Git Kommandos. Eure Aliase sind für euch da, beim Prüfen dessen, was der Agent gemacht hat. Der typische Loop sieht so aus: gst, dann gd, Zeile für Zeile lesen, Tests laufen lassen, committen. Wie das im größeren Rahmen funktioniert, steht auf unserer Seite zu Agentic Coding.

Wenn ein Agent viele kleine Zwischencommits hinterlässt, räumt ihr vor dem Push auf. Im Terminal geht das mit grbmia und einem Git Interactive Rebase. Wer es visuell mag, schaut sich den GitKraken Commit Composer an. In jedem Fall laufen die Commits danach durch dieselben Quality Gates für KI Code wie alles andere.

Einzelne Git Aliase abschalten

Manche Kürzel kollidieren mit anderen Tools oder mit eigenen Gewohnheiten. Ihr könnt alle Aliase des Plugins abschalten und trotzdem die Hilfsfunktionen behalten. Oder ihr überschreibt einzelne Aliase nach dem Laden von Oh My Zsh.

# ~/.zshrc, vor dem source von oh-my-zsh.sh
# Alle Aliase des Git Plugins abschalten
zstyle ':omz:plugins:git' aliases no

# ~/.zshrc, nach dem source von oh-my-zsh.sh
# Einen einzelnen Alias entfernen
unalias gpristine

Die komplette Liste aller Kürzel steht in der README des Git Plugins auf GitHub. Das Projekt selbst findet ihr im Oh My Zsh Repository, die Grundlagen zu allen Befehlen in der offiziellen Git Dokumentation. Wer Git grundsätzlich neu denken will, schaut sich Jujutsu an.

Häufige Fragen zum Oh My Zsh Git Plugin

Ist das Git Plugin bei Oh My Zsh standardmäßig aktiv?

Ja. Bei einer frischen Installation steht git als einziges Plugin in der plugins Liste der .zshrc. Wer die Datei später umgebaut hat, prüft kurz, ob der Eintrag noch da ist.

Wie finde ich heraus, was ein Git Alias macht?

Mit alias gst seht ihr den Befehl hinter einem einzelnen Kürzel. alias | grep git listet alle auf. Die README des Plugins erklärt zusätzlich die Hilfsfunktionen wie gbda und gbcopy.

Was ist der Unterschied zwischen gpf und gpf!?

gpf pusht mit --force-with-lease und überschreibt nur, wenn sich auf dem Remote nichts Unbekanntes getan hat. gpf! pusht mit hartem --force und überschreibt alles. Nehmt im Alltag immer die Variante ohne Ausrufezeichen.

Funktionieren die Aliase mit main und master?

Ja. Aliase wie gcm, grbm und glom nutzen die Funktion git_main_branch. Sie nimmt main, wenn es den Branch gibt, und sonst master. Ihr müsst nichts konfigurieren.

Nutzen Coding Agents meine Git Aliase?

In der Regel nicht. Agents führen Befehle meist in einer nicht interaktiven Shell aus, in der eure Aliase gar nicht geladen sind. Sie arbeiten mit den vollen Git Kommandos. Die Aliase helfen euch beim Prüfen und Committen.

Terminal, Git und Agents im Griff

Im NCA KI Workshop für Developer arbeitet euer Team im Terminal mit Coding Agents, sauberer Git History und Quality Gates, die jeden Commit prüfen. Das Vorgespräch ist kostenlos.

0 Kommentar

Tutorials und Top Posts

Gib uns Feedback

Diese Seite benutzt Cookies. Ein Akzeptieren hilft uns die Seite zu verbessern. Ok Mehr dazu