W3docs

git alias

Informationen zu Git-Aliasen: wie man sie erstellt und für eigene Git-Befehle nutzt.

gitalias

Was ist ein Git-Alias?

Ein Git-Alias ist eine benutzerdefinierte Abkürzung, die einen kurzen, einprägsamen Namen einem längeren Git-Befehl (oder sogar einer Befehlskette) zuordnet. Einmal definiert, kann die Eingabe von git co den Befehl git checkout ausführen – das spart Tastendrücke und reduziert Tippfehler bei Befehlen, die man dutzende Male am Tag verwendet.

Es gibt keinen dedizierten git alias-Befehl. Stattdessen werden Aliase als gewöhnliche Konfigurationseinträge gespeichert, sodass man sie mit dem Befehl git config oder durch direktes Bearbeiten einer Git-Konfigurationsdatei erstellt. Da es sich lediglich um Konfiguration handelt, gelten für Aliase die normalen Gültigkeitsbereichsregeln von Git: Man definiert sie global (in ~/.gitconfig), sodass jedes Repository sie verwenden kann, oder lokal (in der .git/config eines einzelnen Repos), wenn ein Alias nur für dieses Projekt sinnvoll ist.

Diese Seite behandelt beide Methoden zur Erstellung von Aliasen, wie man sie überprüft, wie man Befehle mit Argumenten als Alias anlegt, wie man externe Shell-Befehle aus einem Alias heraus ausführt, und eine Reihe von Aliasen, die man noch heute hinzufügen sollte.

Aliase mit git config erstellen

Die gebräuchlichste Methode zum Hinzufügen eines Alias ist der Befehl git config mit dem Flag --global, der in ~/.gitconfig schreibt, sodass der Alias in jedem Repository verfügbar ist:

git config --global alias.co checkout

Die allgemeine Form lautet git config --global alias.<kürzel> "<befehl>". Das obige Beispiel ermöglicht es, git co überall zu verwenden, wo git checkout erwartet wird. Lässt man --global weg, wird der Alias nur auf das aktuelle Repository beschränkt.

Man kann bestätigen, dass der Alias gespeichert wurde, indem man git config --list aufruft, was jeden aktiven Konfigurationswert ausgibt:

git config --list

Der neue Eintrag erscheint in der Ausgabe als:

alias.co=checkout

Von nun an verhält sich der Alias genau so, als hätte man den vollständigen Befehl eingegeben. Alle zusätzlichen Argumente werden an den zugrunde liegenden Befehl weitergegeben:

git co -b new-feature

Dies führt git checkout -b new-feature aus und erstellt einen Branch namens new-feature und wechselt zu ihm.

Aliase durch Bearbeiten der .gitconfig erstellen

Da Aliase reine Konfiguration sind, kann man sie auch durch direktes Bearbeiten der Konfigurationsdatei hinzufügen. Man öffnet ~/.gitconfig (global) oder die .git/config eines Repositories (lokal) und fügt einen [alias]-Abschnitt hinzu:

[alias]
co = checkout
ci = commit
st = status

Jede Zeile unter [alias] hat die Form kürzel = befehl. Dies ist genau das, was git config --global alias.co checkout erzeugt, sodass beide Methoden austauschbar sind – die direkte Bearbeitung der Datei ist praktisch, wenn man mehrere Aliase auf einmal hinzufügen möchte.

Befehle mit Argumenten als Alias anlegen

Aliase funktionieren gut für Befehle, die immer dieselben Flags verwenden. Zum Beispiel ein einzeiliges, dekoriertes Log:

git config --global alias.lg "log --oneline --graph --decorate --all"

Das Ausführen von git lg gibt dann einen kompakten, grafisch dargestellten Verlauf aus. Unter git log erfährt man, was jedes Flag bewirkt.

Tipp

Umschließe den Befehl in Anführungszeichen, wenn er Leerzeichen oder Flags enthält, da sonst die Shell die zusätzlichen Wörter an git config weitergibt, anstatt sie als Teil des Alias zu speichern.

Shell-Befehle aus einem Alias ausführen

Um ein externes Programm (keinen Git-Unterbefehl) auszuführen, stellt man dem Aliaswert ! voran. Git führt den Rest dann in einer Shell aus:

git config --global alias.visual "!gitk"

So kombiniert man auch mehrere Schritte. Der folgende Alias stagt alles und committet in einem Schritt, wobei $1 die übergebene Commit-Nachricht ist:

git config --global alias.ac '!f() { git add -A && git commit -m "$1"; }; f'

Nun führt git ac "fix typo" zuerst git add -A und dann git commit -m "fix typo" aus.

Nützliche Git-Aliase

Hier sind einige Aliase, die alltägliche Befehle verkürzen. Man fügt sie mit git config --global alias.<name> "<befehl>" hinzu:

AliasWird erweitert zuBeschreibung
co = checkoutgit checkoutWechselt Branches oder stellt Dateien wieder her.
cob = checkout -bgit checkout -bErstellt einen neuen Branch und wechselt zu ihm.
ci = commitgit commitSpeichert gestagete Änderungen. Siehe git commit.
st = status -sbgit status -sbZeigt einen kurzen, branch-bewussten Status.
f = fetch -pgit fetch -pFetcht und bereinigt veraltete Remote-Tracking-Branches.
p = pushgit pushÜberträgt Änderungen an ein Remote.
bd = branch -dgit branch -dLöscht einen Branch nur, wenn er gemergt wurde.
ba = branch -agit branch -aListet Remote-Tracking- und lokale Branches auf.
bD = branch -Dgit branch -DLöscht einen Branch zwangsweise.
dc = diff --cachedgit diff --cachedZeigt die gestageten Änderungen.

Übung

Übung
Was ist die korrekte Methode, um mit dem Befehl 'git config' einen Git-Alias für den Befehl 'commit' zu erstellen?
Was ist die korrekte Methode, um mit dem Befehl 'git config' einen Git-Alias für den Befehl 'commit' zu erstellen?
Was this page helpful?