Als Entwickler verwenden Sie wahrscheinlich täglich die Git CLI (Command Line Interface). Das Schreiben der gleichen alten Befehle wiederholt kann jedoch mühsam sein, insbesondere wenn die Befehle lang sind. Hier kommen Git-Aliase ins Spiel.

In diesem Artikel erfahren Sie, wie Sie Ihre Git-Befehle durch die Verwendung von Aliassen vereinfachen können.

Inhaltsverzeichnis

Voraussetzungen

  • Kenntnisse in Git.

  • Git Bash installiert (optional, aber empfohlen für Windows-Benutzer).

  • Ein IDE wie VS Code (dies ist ebenfalls optional).

Was sind Git-Aliasse?

Git-Aliasse sind benutzerdefinierte Verknüpfungen für vorhandene Git-Befehle, die häufige Aufgaben schneller und einfacher machen. Sie ermöglichen es Ihnen, Ihre eigenen Befehle zu definieren und Verknüpfungen genau nach Ihren Wünschen anzupassen.

Sie haben zwei Hauptoptionen, um Git-Aliasse in Ihrer Git-Konfiguration hinzuzufügen/zu erstellen, entweder über Ihre Git-Konfigurationsdatei oder direkt über die Befehlszeile (Terminal).

Bei dieser Option öffnen Sie Ihre globale Git-Konfigurationsdatei und fügen Ihre Git-Aliasse am Ende der Datei hinzu.

Wie man Ihren bevorzugten Git-Editor einstellt

Stellen Sie Ihre Standard-Git-Konfigurations-Editor-Software ein, zum Beispiel verwende ich VS Code, um meine Git-Konfigurationsdatei zu bearbeiten, aber Sie können jeden Texteditor/Code-Editor verwenden, den Sie bevorzugen.

Führen Sie diesen Befehl aus, um Notepad als Ihren bevorzugten Editor unter Windows festzulegen (CMD/PowerShell):

git config --global core.editor "notepad"

Führen Sie diesen Befehl aus, um VS Code als Ihren bevorzugten Editor unter Windows & MacOS/Linux festzulegen:

git config --global core.editor "code --wait"

Um einen anderen Standard-Editor festzulegen, suchen Sie online nach „Set {editor} as default Git editor“ und ersetzen Sie {editor} durch Ihre bevorzugte App.

So öffnen Sie die Git-Konfigurationsdatei

Öffnen Sie Ihr Terminal Ihrer Wahl und geben Sie den folgenden Befehl ein. Dies öffnet die globale Git-Konfigurationsdatei (git config --global) im Bearbeitungsmodus (-e).

git config --global -e

Sie können die Git-Konfigurationsdatei direkt von folgenden Orten aus öffnen:

Mac Os: Home-Verzeichnis → ausblenden (Cmd + Umschalt + H) → .gitconfig

Windows: C:\Benutzer\IhrBenutzername\ → dann ausblenden (in Ansicht) → und suchen Sie .gitconfig

Linux: Home-Verzeichnis → ausblenden (Strg + H) → .gitconfig

Wie man ein Git-Alias über Ihre Konfigurationsdatei hinzufügt

Wenn Sie zum ersten Mal Git-Aliase hinzufügen, öffnen Sie Ihre .gitconfig-Datei, fügen Sie am Ende [alias] hinzu und listen Sie dann Ihre Verknüpfungen darunter auf. Dies zeigt Git an, dass es sich um Aliase handelt. Fügen Sie Ihren bevorzugten Alias hinzu (den verkürzten Befehl, den Sie ausführen möchten).

Das Format eines Git-Alias ist <alias> = <Befehl>, also haben wir:

co = checkout
cob = checkout -b

Erklärung der obigen Beispiele:

co = checkout mapped den Befehl git checkout auf einen kürzeren Befehl git co. Du würdest dann git co feature/123 in deinem Terminal aufrufen.

Du musst nicht git vor dem Befehl eingeben, da die Konfiguration dies automatisch voranstellen wird, da es den Befehl, den du mappst, als Git-Befehl erkennt.

Hinweis: Alle an den Befehl übergebenen Parameter werden nur auf den endgültigen Befehl angewendet, der innerhalb des Alias aufgerufen wird.

Weitere Aliase können auf diese Weise hinzugefügt werden, um Abkürzungen für vorhandene Git-Befehle zu erstellen. Das Speichern und Schließen der Datei macht die Aliase dann in Ihrem Terminal verfügbar.

Wie man Aliase in der Befehlszeile hinzufügt

Wenn Sie einen effizienteren Ansatz für das Hinzufügen von Git-Aliassen möchten, können Sie sie direkt von der Befehlszeile aus hinzufügen.

Die oben genannten Beispiele können wie folgt direkt hinzugefügt werden:

Das Format des Befehls lautet: git config --global alias.{alias} "{original command}":

git config --global alias.co "checkout"
#oder
git config --global alias.cob "checkout -b"

So einfach ist das!

Wie man benutzerdefinierte Befehle für komplexere Abkürzungen erstellt

Ok, das klingt gut, aber es ist nicht wirklich beeindruckend – wir entfernen nur ein paar Zeichen. Allerdings können wir sie viel hilfreicher machen, indem wir unsere Befehle mit Shell-Befehlen erstellen.

Lass uns das folgende Beispiel betrachten, ein Befehl, den ich oft benutze!

new-work = !git checkout main && git pull && git cob

Dieses Alias kombiniert mehrere Git-Befehle zu einem einzigen Shell-Befehl. Das !-Zeichen sagt Git, dass es als Shell-Befehl behandelt werden soll, nicht als standardmäßiger Git-Befehl.

Ohne ! behandelt Git das Alias als Git-Befehl (zum Beispiel wird checkout zu git checkout). Mit ! weiß Git, dass es als Shell-Befehl ausgeführt werden soll, ohne git davor hinzuzufügen.

Indem man diese Befehle verkettet, können wir viel nützlichere Aliase schreiben. Das oben genannte wird:

  • Zunächst den Zweig main auschecken.

  • Mit dem Operator && bedeudet dies, dass die anderen Befehle nur ausgeführt werden, wenn der vorherige erfolgreich war.

  • Zweitens werden die Änderungen von main heruntergeladen.

  • Zuletzt wird ein neuer Zweig vom main-Zweig unter Verwendung unseres anderen Alias git cob erstellt.

Der endgültige Befehl kann dann Parameter akzeptieren (wie der ursprüngliche Git-Befehl), sodass er wie folgt verwendet werden kann:

git new-work 'feature/new-work-from-main'

Wie man Parameter in allen Befehlen verwendet

Bisher konnten wir nur unsere Parameter an den endgültigen Git-Befehl in unserem Alias übergeben. Was ist jedoch, wenn wir Parameter an einige, wenn nicht an alle Befehle innerhalb des Alias übergeben möchten? Dies können wir erreichen, indem wir eine Shell-Funktion verwenden.

Nehmen Sie das folgende Beispiel:

new-work = "!f() { git checkout \"$1\" && git pull && git checkout -b \"$2\"; }; f"

Hier verwenden wir eine Shell-Funktion, die Eingabeparameter verarbeitet.

Erklärung:

  1. !f():

    • Das ! sagt Git, dass der Alias als Shell-Befehl und nicht als Standard-Git-Befehl interpretiert werden soll.

    • f() definiert eine Shell-Funktion f, die es uns ermöglicht, mehrere Befehle nacheinander auszuführen.

  2. Alles innerhalb von { } wird innerhalb der Funktion f() ausgeführt.

  3. git checkout \"\$1”'\: Führt einen parametrisierten Git-Befehl aus, wobei \$1 maskiert ist und durch den ersten Parameter ersetzt wird, der dem Alias übergeben wird. Die Escape-Sequenzen \" um \$1 ermöglichen Branch-Namen mit Leerzeichen.

  4. && ist ein logischer Operator, der sicherstellt, dass jeder Befehl nur ausgeführt wird, wenn der vorherige erfolgreich war. Wenn git checkout "$1" fehlschlägt, werden die folgenden Befehle nicht ausgeführt.

  5. git checkout -b \"\$2”\ : Erstellt einen neuen Branch mit dem Namen des zweiten Parameters wie zuvor.

  6. ;: Kennzeichnet das Ende der f()-Funktion;

  7. f: Das abschließende f ruft die Alias-Funktion sofort auf, was bedeutet, dass beim Aufruf des Alias die Funktion deklariert und sofort aufgerufen wird.

Verwendung:

git new-work development task/feat-123

Weitere nützliche Aliase

[alias]
     co = checkout
    cob = checkout -b
    s = status
    tidy-up = !git checkout main && git branch | grep -v "main" | xargs git branch -D
    latest = !git checkout main && git pull
    new-work = "!f() { git checkout \"$1\" && git pull && git checkout -b \"$2\"; }; f"
    done = !git push -u origin HEAD
    save = !git add -A && git commit
    saveM = !git add -A && git commit -m
    br = branch --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative)) [%(authorname)]' --sort=-committerdate

Zusammenfassung

co: Wechselt zu einem angegebenen Branch → git co task/feat-123

cob: Erstellt einen neuen Branch vom aktuellen Branch → git cob feature/123

s: Ruft git status auf, um den Status des aktuellen Git-Branches anzuzeigen → git s

tidy-up: Löscht alle lokalen Branches außer maingit tidy-up

latest: Holt die neuesten Änderungen vom remote main Branch → git latest

new-work: Erstellt einen neuen Branch (2. Parameter) vom Branch des 1. Parameters → git new-work main feat/123

git done: Pushed den aktuellen Branch zum Remote-Repository (origin) und setzt ihn als Upstream-Branch. Dies kann hilfreich sein, wenn Sie Ihren ersten Commit pushen und den Fehler erhalten:
fatal: Der aktuelle Branch hat keinen Upstream-Branch. Um den aktuellen Branch zu pushen und den Remote als Upstream zu setzen, verwenden Sie git push --set-upstream origin

save: Fügt einfach alle geänderten Dateien hinzu, committet sie, öffnet Ihren Standard-Git-Editor und fordert eine Commit-Nachricht an → git save

savem: Wird wie oben beschrieben funktionieren, aber anstelle Ihres Editors können Sie eine Commit-Nachricht inline übergeben → git savem ‘Task123: add index.html

br: Dieser Befehl wirkt kompliziert, ist aber nicht so kompliziert, wie es scheint, und zeigt die Leistungsfähigkeit von Aliassen. Im Wesentlichen passt er das Ausgabeformat von git branch an, um eine detaillierte, farblich codierte Liste von Branches anzuzeigen, die nach dem Datum des letzten Commits sortiert ist. Es wird für jeden lokalen Branch etwas Ähnliches wie das untenstehende Bild aussehen.

Hier haben Sie eine Einführung in Git-Aliasse und einige nützliche Beispiele für Aliasse, die Sie als Start in Ihrer Konfiguration hinzufügen können.

Wie immer, wenn Sie darüber diskutieren möchten oder über zukünftige Artikel informiert werden möchten, können Sie mir auf Twitter folgen.