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