Git उर्फ के अंदर कमांड चलाने के लिए, और विशेष रूप से उन कमांड के लिए तर्क पारित करने के लिए, आपको संभवतः एक अस्थायी फ़ंक्शन बनाना होगा, जिसे आप तुरंत लागू करते हैं:
$ vim ~/.gitconfig
...
[alias]
foo = "! echo begin arg=$1/$2/end"
foo2 = "!f() { echo "begin arg=$1/$2/end"; }; f"
इस उदाहरण में, फ़ंक्शन संभवतः वह है जो आपको चाहिए (और यह भी अधिक लचीला है कि आप एक "स्टेटमेंट" में क्या कर सकते हैं); और आप शायद यह बता सकते हैं कि दोनों विकल्पों के लिए, git कमांड के लिए शेष आर्गन्स बस उर्फ के लिए args के रूप में पारित किए जाते हैं, भले ही यह "इको" या "एफ" हो; फ़ंक्शन को लागू करने से केवल आर्ग की खपत होती है, यह अनदेखी करते हुए कि स्पष्ट रूप से उपयोग नहीं किया जाता है:
$ git foo a b c
begin arg=a/b/end a b c
$ git foo2 a b c
begin arg=a/b/end
एक अन्य उदाहरण (सभी उपनामों की सूची देता है, मिलान पैटर्न के आधार पर) (ध्यान दें: आप एक ही फ़ंक्शन नाम "f ()" को .gitconfig में पुन: उपयोग कर सकते हैं:
[alias]
alias = "!f() { git config --get-regexp "^alias.${1}$" ; }; f"
पहला सिर्फ "फू $" के लिए उपनाम देता है, दूसरा "फू *।" के लिए।
$ 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
(नायब: वास्तविक परिणाम शेल के आधार पर भिन्न हो सकते हैं; मैं लिनक्स, यूनिक्स और साइगविन (विंडोज) पर बैश के साथ इसका उपयोग कर रहा हूं।)