Um Befehle innerhalb eines Git-Alias auszuführen und insbesondere Argumente an diese Befehle zu übergeben, müssen Sie wahrscheinlich eine temporäre Funktion erstellen, die Sie dann sofort aufrufen:
$ vim ~/.gitconfig
...
[alias]
foo = "! echo begin arg=$1/$2/end"
foo2 = "!f() { echo "begin arg=$1/$2/end"; }; f"
In diesem Beispiel ist die Funktion wahrscheinlich genau das, was Sie benötigen (und sie ist auch flexibler, was Sie in einer einzelnen "Anweisung" tun können). und Sie können wahrscheinlich feststellen, dass für beide Optionen die verbleibenden Argumente an den Befehl git einfach als Argumente an den Alias übergeben werden, unabhängig davon, ob es sich um "echo" oder "f" handelt. Das Aufrufen der Funktion verbraucht einfach die Argumente und ignoriert, was nicht explizit verwendet wird:
$ git foo a b c
begin arg=a/b/end a b c
$ git foo2 a b c
begin arg=a/b/end
Ein weiteres Beispiel (listet alle Aliase basierend auf dem übereinstimmenden Muster auf) (Hinweis: Sie können den gleichen Funktionsnamen "f ()" in der gesamten .gitconfig weiterhin verwenden):
[alias]
alias = "!f() { git config --get-regexp "^alias.${1}$" ; }; f"
Der erste gibt den Alias für nur "foo $" zurück, der zweite für "foo. *":
$ git alias foo
alias.foo ! echo begin arg=$1/$2/end
$ git alias 'foo.*'
alias.foo ! echo begin arg=$1/$2/end
alias.foo2 !f() { echo begin arg=$1/$2/end; }; f
(nb: Die tatsächlichen Ergebnisse können je nach Shell variieren. Ich verwende dies mit Bash unter Linux, Unix und Cygwin (Windows).)