git 별칭 내에서 명령을 실행하고 특히 해당 명령에 인수를 전달하려면 즉시 호출하는 임시 함수를 만들어야합니다.
$ vim ~/.gitconfig
...
[alias]
foo = "! echo begin arg=$1/$2/end"
foo2 = "!f() { echo "begin arg=$1/$2/end"; }; f"
이 예제에서 함수는 아마도 여러분이 필요로하는 것일 것입니다 (또한 단일 "문"에서 할 수있는 것에 대해 더 유연합니다). 두 옵션 모두에 대해 git 명령의 나머지 인수는 "echo"또는 "f"인지 여부에 관계없이 별칭에 args로 전달된다는 것을 알 수 있습니다. 함수를 호출하는 것은 명시 적으로 사용되지 않는 것은 무시하고 단순히 args를 소비합니다.
$ git foo a b c
begin arg=a/b/end a b c
$ git foo2 a b c
begin arg=a/b/end
또 다른 예 (일치하는 패턴에 따라 모든 별칭 나열) (참고 : .gitconfig 전체에서 동일한 함수 이름 "f ()"를 계속 재사용 할 수 있음) :
[alias]
alias = "!f() { git config --get-regexp "^alias.${1}$" ; }; f"
첫 번째는 "foo $"에 대한 별칭을 반환하고 두 번째는 "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 : 실제 결과는 쉘에 따라 다를 수 있습니다. Linux, Unix 및 Cygwin (Windows)에서 bash와 함께 사용하고 있습니다.)