2012-04-16 11 views
8

मैं पार्टी में किसी अन्य नाम बनाना चाहते हैं, ऐसा है किबैश में बहु शब्द उपनाम बनाएँ?

git diff somefile 

हो जाता है

git diff --color somefile 

लेकिन मैं की तरह

alias gitd = "git diff --color" 

मेरे स्वयं के कस्टम उर्फ ​​परिभाषित करने के लिए नहीं करना चाहती क्योंकि अगर मैं इन कस्टम उपनामों में उपयोग करता हूं, फिर मैंने उन मशीनों पर काम करने की क्षमता खो दी जो इन मैपिंग्स नहीं हैं।

संपादित करें: ऐसा लगता है कि बैश बहु-शब्द उपनाम की अनुमति नहीं देता है। उपनाम बनाने के अलावा इसके अलावा कोई अन्य वैकल्पिक समाधान है?

+0

मुझे नहीं लगता कि यह संभव है ... –

उत्तर

8

बेहतर उत्तर (इस विशिष्ट मामले के लिए)।

git-config आदमी पृष्ठ से:

color.diff 
     When set to always, always use colors in patch. When false (or 
     never), never. When set to true or auto, use colors only when the 
     output is to the terminal. Defaults to false. 

कोई समारोह या अन्य नाम की जरूरत है। लेकिन फंक्शन रैपर दृष्टिकोण किसी भी कमांड के लिए सामान्य है; उस कार्ड को अपनी आस्तीन को चिपकाएं।

+0

इसे इंगित करने के लिए फिर से धन्यवाद। मुझे आपके जवाब दोनों पसंद हैं। लेकिन यह मेरे उपयोग के लिए बहुत विशिष्ट है। तो इसे स्वीकार किए गए उत्तर के रूप में चुनना। – Sudar

1

बचें कारतूस काम संकेत चारों ओर पार्टी में:

alias gitd="git diff --color" 
16

एक आदेश के लिए एक होशियार उर्फ ​​बनाने के लिए, आप एक आवरण समारोह जो कि आदेश के रूप में एक ही नाम है लिखने के लिए है, और जो तर्क का विश्लेषण करती है, उन्हें बदल देता है, और उसके बाद वास्तविक आदेश को परिवर्तित तर्कों के साथ कॉल करता है।

उदाहरण के लिए आपका git फ़ंक्शन यह पहचान सकता है कि diff लागू किया जा रहा है, और वहां --color तर्क डालें।

कोड:

# in your ~/.bash_profile 

git() 
{ 
    if [ $# -gt 0 ] && [ "$1" == "diff" ] ; then 
    shift 
    command git diff --color "[email protected]" 
    else 
    command git "[email protected]" 
    fi 
} 

आप diff से पहले किसी भी विकल्प का समर्थन और अभी भी यह --color जोड़ने के लिए करना चाहते हैं, तो आप इस होशियार पार्स करने, स्पष्ट रूप से करना है।

+0

पूरी तरह से काम करता है और मेरी समस्या हल करता है। धन्यवाद! – Sudar

+0

आप पथ को हार्ड-कोडिंग के बजाय 'कमांड गिट' का उपयोग करना चाहेंगे। –

+0

मुझे पता था कि मूल बाहरी आदेश को संदर्भित करने का एक तरीका है, लेकिन मेरे जीवन के लिए मुझे याद नहीं आया। :) – Kaz

1

आप गलत पेड़ को भड़क रहे हैं। color.diff कॉन्फ़िगरेशन विकल्प को auto पर सेट करें।

संबंधित मुद्दे