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
-
So fügen Sie Git-Aliase über die globale Git-Konfigurationsdatei hinzu (Empfohlen)
-
So erstellen Sie benutzerdefinierte Befehle für komplexere Verknüpfungen
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).
Wie man Git-Aliasse über die globale Git-Konfigurationsdatei hinzufügt (empfohlen)
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 Aliasgit 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:
-
!f()
:-
Das
!
sagt Git, dass der Alias als Shell-Befehl und nicht als Standard-Git-Befehl interpretiert werden soll. -
f()
definiert eine Shell-Funktionf
, die es uns ermöglicht, mehrere Befehle nacheinander auszuführen.
-
-
Alles innerhalb von
{ }
wird innerhalb der Funktionf()
ausgeführt. -
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. -
&&
ist ein logischer Operator, der sicherstellt, dass jeder Befehl nur ausgeführt wird, wenn der vorherige erfolgreich war. Wenngit checkout "$1"
fehlschlägt, werden die folgenden Befehle nicht ausgeführt. -
git checkout -b \"\$2”\
: Erstellt einen neuen Branch mit dem Namen des zweiten Parameters wie zuvor. -
;
: Kennzeichnet das Ende derf()
-Funktion; -
f
: Das abschließendef
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 main
→ git 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.
Source:
https://www.freecodecamp.org/news/how-to-simplify-your-git-commands-with-git-aliases/