Git उपनामों का प्रबंधन
एक बार जब आप अपने उपनाम सेट कर लेते हैं, तो आपको उन्हें व्यवस्थित रखना, आवश्यकता अनुसार अपडेट करना, और उत्पन्न होने वाले किसी भी टकराव को हल करना होगा।
उपनामों की सूची बनाना, अपडेट करना, और हटाना
हम पहले ही चर्चा कर चुके हैं कि आप अपने उपनामों की सूची कैसे देख सकते हैं, चाहे कॉन्फ़िगरेशन फाइल में या कमांड लाइन से। लेकिन अगर आप किसी उपनाम को बदलना या हटाना चाहें तो? सौभाग्य से, यह भी बहुत सीधा है। उपनाम बदलने के लिए, आप या तो नए मान के साथ git config कमांड दोबारा चला सकते हैं, या अपनी कॉन्फ़िगरेशन फाइल में संबंधित पंक्ति को सीधे संपादित कर सकते हैं।
किसी उपनाम को हटाना भी उतना ही आसान है। कमांड लाइन में, आप उपनाम हटाने के लिए --unset फ्लैग का उपयोग कर सकते हैं:
git config --global --unset alias.lg
या आप बस अपनी कॉन्फ़िग फाइल से वह पंक्ति हटा सकते हैं। हटाते ही उपनाम उपलब्ध नहीं रहेगा।
उपनाम टकराव और समस्याओं का समाधान
कभी-कभी आप टकरावों का सामना कर सकते हैं, जैसे कि वही उपनाम ग्लोबली और लोकली दोनों जगह परिभाषित करना। याद रखें कि लोकल उपनाम उसी रिपॉजिटरी के भीतर ग्लोबल उपनामों को ओवरराइड करते हैं। इसलिए यदि आपको लगे कि आपका सामान्य उपनाम सही से काम नहीं कर रहा है, तो आप यह जाँचना चाहेंगे कि आप किस रिपॉजिटरी में हैं और क्या कोई लोकल उपनाम परिभाषित है। यह भी अच्छा अभ्यास है कि commit या push जैसे बिल्ट-इन Git कमांड नामों से ओवरलैप करने वाले नामों से बचने की कोशिश करें।
यदि आप मशीनों के बीच जाते हैं या Git अपग्रेड करते हैं, तो यह दोबारा जाँच लेना अच्छा विचार है कि आपके उपनाम अब भी काम कर रहे हैं। और, सहयोग करते समय, अपने उपनामों का दस्तावेज़ीकरण करने या साझा कॉमन कॉन्फ़िगरेशन फाइल रखने पर विचार करें, ताकि सभी को वही शॉर्टकट्स उपलब्ध हों।
सामान्य उपनाम श्रेणियाँ और उपयोग के मामले
आइए Git उपनामों की कुछ अलग-अलग श्रेणियों पर नज़र डालें और यह देखें कि वे आपकी दैनिक गतिविधि को कैसे बढ़ा सकती हैं।
कमांड्स को छोटा करना
उपनामों का सबसे स्पष्ट उपयोग लंबी या बार-बार उपयोग की जाने वाली कमांड्स को संक्षिप्त करना है। git checkout main टाइप करने के बजाय आप git co main का उपयोग कर सकते हैं, या git status की जगह केवल git st। समय के साथ, ये छोटे-छोटे बदलाव बहुत सारी टाइपिंग बचा सकते हैं और आपका कार्यप्रवाह तेज़ महसूस होगा।
आउटपुट फ़ॉर्मैटिंग को बेहतर बनाना
कभी-कभी Git का कच्चा आउटपुट पढ़ना मुश्किल हो सकता है, खासकर git log या git diff जैसी कमांड्स के साथ। उपनाम आपको आउटपुट फ़ॉर्मैटिंग बदलकर उसे स्पष्ट बनाने देते हैं। हम रंगों, तारीखों और ब्रांचों के साथ कस्टम लॉग व्यू परिभाषित कर सकते हैं, या शब्द हाइलाइटिंग के साथ डिफ्स को अधिक पठनीय बना सकते हैं। इससे बदलावों को पहचानना और इतिहास ट्रैक करना काफी आसान हो सकता है।
उदाहरण के लिए, हम git log के लिए एक कस्टम उपनाम बना सकते हैं ताकि आउटपुट की पठनीयता बेहतर हो:
git config --global alias.lg "log --oneline --graph --decorate --date=short --pretty=format:'%h - (%cd) %an %d %s'"
अब, git log टाइप करने और यह सामान्य आउटपुट पाने के बजाय:
commit c2f3d4a6b8e9d55f45e2f98c879f6f43be11a765 (HEAD -> main)
Author: Jane Deer <[email protected]>
Date: Sun Aug 10 14:12:03 2025 -0400
Fix typo in README
commit a7b1e22c0f6a2d876fe4c9d8e00c64e28793d9e0
Author: John Doe <[email protected]>
Date: Tue Aug 5 09:33:45 2025 -0400
Add login validation
हम अपने उपनाम git lg का उपयोग करके बहुत सरल और पढ़ने में आसान आउटपुट प्राप्त कर सकते हैं:
* c2f3d4a - (2025-08-10) Jane Deer (HEAD -> main) Fix typo in README
* a7b1e22 - (2025-08-05) John Doe Add login validation
आप देख सकते हैं कि हमारा उपनामित आउटपुट काफी अधिक पठनीय होगा, खासकर यदि यहाँ केवल दो नहीं बल्कि बीस या उससे अधिक प्रविष्टियाँ हों।
कार्यप्रवाह स्वचालन
उपनाम आपके Git कार्यप्रवाह के लिए छोटे-छोटे ऑटोमेशन टूल के रूप में भी काम कर सकते हैं। उदाहरण के लिए, आप कई कमांड्स को एक उपनाम में जोड़ सकते हैं जो एक ही चरण में बदलावों को स्टेज, कमिट और पुश कर दे। इस प्रकार का ऑटोमेशन उपयोगी हो सकता है, खासकर उन टीमों के लिए जो DevOps प्रथाओं का उपयोग करती हैं और स्थिरता को महत्व देती हैं।
Git व्यापक ऑटोमेशन कार्यप्रवाहों से कैसे जुड़ता है, इसके बारे में और जान सकते हैं CI/CD for Machine Learning में।
अक्सर उपयोग किए जाने वाले और समुदाय-प्रस्तावित उपनाम
कुछ उपनाम इतने लोकप्रिय हैं कि वे Git समुदाय में मानक बन चुके हैं। इनमें शॉर्टकट्स के साथ-साथ अधिक उन्नत उपनाम शामिल हैं जो काम आसान बनाते हैं। नीचे दी गई तालिका देखें जिसमें 20 सबसे आम Git उपनाम दिखाए गए हैं जो मैं देखता हूँ।
|
पूर्ण कमांड |
उपनाम |
कार्य |
|
|
|
वर्किंग डायरेक्टरी की स्थिति दिखाएं |
|
|
|
ब्रांच बदलें या फाइलें पुनर्स्थापित करें |
|
|
|
ब्रांचों की सूची बनाएं, बनाएँ, या हटाएँ |
|
|
|
स्टेज्ड बदलाव रिकॉर्ड करें |
|
|
|
संदेश के साथ कमिट करें |
|
|
|
सभी बदलाव (नए, संशोधित, हटाए गए) स्टेज करें |
|
|
बदलाव बिना हटाए फाइलों को अनस्टेज करें | |
|
|
|
नवीनतम कमिट दिखाएं |
|
|
|
ग्राफ और मेटाडेटा सहित सुंदर लॉग व्यू |
|
|
|
हिस्ट्री ग्राफ के साथ एक और पठनीय लॉग फ़ॉर्मैट |
|
|
अनस्टेज्ड बदलाव दिखाएं | |
|
|
|
स्टेज्ड बदलाव दिखाएं |
|
|
|
रिमोट से फ़ेच करें और इंटीग्रेट करें |
|
|
|
बदलावों को रिमोट पर अपलोड करें |
|
|
कमिट्स को किसी अन्य बेस टिप पर फिर से लागू करें | |
|
|
|
चल रहे रीबेस को रद्द करें |
|
|
|
कॉनफ़्लिक्ट सुलझाने के बाद रीबेस फिर शुरू करें |
|
|
|
आख़िरी कमिट संपादित करें |
|
|
|
आख़िरी कमिट पूर्ववत करें लेकिन बदलाव स्टेज्ड रखें |
|
|
|
सभी रिमोट्स अपडेट करें और हटाई गई ब्रांचों को प्रून करें |
उन्नत उपनाम तकनीकें
लंबी कमांड्स को छोटा करने से आगे बढ़कर, कुछ उन्नत उपनाम तकनीकें भी हैं जो आपको शेल के साथ इंटेग्रेशन, पैरामीटर्स संभालने, या यहाँ तक कि विशिष्ट रिपॉजिटरी के अनुरूप उपनाम तैयार करने की लचीलापन देती हैं।
शेल कमांड इंटेग्रेशन
आप शेल कमांड्स को सीधे अपने Git उपनामों में इंटीग्रेट कर सकते हैं। किसी उपनाम के पहले ! लगाने पर Git शेष हिस्से को आपके शेल को पास कर देता है। यहs संभावनाएँ खोलता है जैसे कमिट करने से पहले लिंटर चलाना या कई कमांड्स को एक साथ चेन करना। यदि आप शेल वातावरण में नए हैं, तो Bash & zsh Shell Terminal Basics Cheat Sheet जैसा संसाधन व्यवहार में यह कैसे काम करता है, समझने में मदद कर सकता है।
पैरामीटर हैंडलिंग
कभी-कभी आपको ऐसे उपनाम चाहिए होते हैं जो हार्डकोड न हों, बल्कि आपके द्वारा दिए गए आर्ग्युमेंट्स के अनुसार ढल जाएँ। उपनामों को अनाम Bash फ़ंक्शंस के रूप में लिखकर, आप पैरामीटर्स स्वीकार कर सकते हैं और उन्हें डायनेमिक रूप से उपयोग कर सकते हैं। यह लचीलापन आपको बार-बार के कार्यों को आपकी ज़रूरतों के अनुरूप सरल, पुन: उपयोग योग्य कमांड्स में बदलने देता है।
उदाहरण के लिए, चलिए एक पैरेमीटराइज़्ड Git उपनाम बनाते हैं जो हमारी कमिट्स में किसी विशेष टेक्स्ट को खोजे। Windows पर, आप यह Git Bash में कर सकते हैं। macOS और Linux पर भी वही उपनाम काम करता है, क्योंकि Git इसे Bash-कम्पैटिबल शेल में चलाता है।
git config --global alias.find '!f() { git log --grep="$1"; }; f'
अब git find bugfix चलाने पर कमिट संदेशों में “bugfix” खोजा जाएगा और मिलान करने वाले कमिट दिखेंगे।
शर्ताधारित कॉन्फ़िगरेशन
Git का includeIf निर्देश आपको रिपॉजिटरी या वातावरण के आधार पर अलग-अलग उपनाम सेट लोड करने देता है। उदाहरण के लिए, आप काम के प्रोजेक्ट्स के लिए एक सेट और व्यक्तिगत प्रोजेक्ट्स के लिए दूसरा सेट चाह सकते हैं। शर्ताधारित कॉन्फ़िग्स आपके सेटअप को व्यवस्थित रखते हैं और यह सुनिश्चित करते हैं कि सही संदर्भ में सही टूल्स उपलब्ध हों।
अपनी ग्लोबल git कॉन्फ़िग फाइल में आप यह शामिल कर सकते हैं:
[includeIf "gitdir:C:/Users/YourName/work/"]
path = C:/Users/YourName/.gitconfig-work
[includeIf "gitdir:C:/Users/YourName/personal/"]
path = C:/Users/YourName/.gitconfig-personal
फिर, C:/Users/YourName/.gitconfig-work के अंदर, इस तरह उपनाम परिभाषित करें:
[alias]
st = status
lg = log --oneline --graph
और C:/Users/YourName/.gitconfig-personal में:
[alias]
st = status -s
co = checkout
अब, जब आप C:/Users/YourName/work/ के अंतर्गत किसी रिपॉजिटरी में हैं, तो git lg वर्क-विशिष्ट उपनाम का उपयोग करेगा, जबकि C:/Users/YourName/personal/ में git co पर्सनल उपनाम का उपयोग करेगा। हालाँकि, यदि आप इस सिस्टम का उपयोग करते हैं, तो यह याद रखना महत्वपूर्ण है कि आप किस डायरेक्टरी में हैं। आप अपने उपनामों को आपस में नहीं मिलाना चाहेंगे!
Mac/Linux उपयोगकर्ताओं के लिए नोट: बस Windows पाथ्स को Unix-स्टाइल पाथ्स से बदलें, उदाहरण के लिए: ~/work/ या ~/personal/। अन्यथा व्यवहार समान है।
रखरखाव और सहयोग की रणनीतियाँ
जैसे-जैसे आपके Git उपनामों का संग्रह बढ़ता है, स्पष्टता और स्थिरता बनाए रखना आवश्यक हो जाता है, खासकर यदि आप सहयोग कर रहे हैं। आइए कुछ सर्वोत्तम प्रथाओं पर बात करें—दस्तावेज़ीकरण, साझा करना और अपने उपनामों को सुरक्षित रखना—ताकि वे संपत्ति बने रहें, भ्रम का स्रोत नहीं।
दस्तावेज़ीकरण
Git उपनामों का उचित दस्तावेज़ीकरण विकास प्रक्रिया के अन्य सभी हिस्सों के दस्तावेज़ीकरण जितना ही महत्वपूर्ण है। यह दस्तावेज़ नए टीम सदस्यों और आपके भावी स्व के लिए अमूल्य है। यहाँ कुछ रणनीतियाँ हैं:
- अपने प्रोजेक्ट की README में प्रोजेक्ट-विशिष्ट Git उपनामों के लिए एक सेक्शन बनाए रखें। हर उपनाम के लिए, उसके उद्देश्य और उपयोग का संक्षिप्त वर्णन करें।
- .gitconfig को सीधे संपादित करते समय, जटिल या स्पष्ट न होने वाले उपनामों के ऊपर टिप्पणियाँ जोड़ें। उदाहरण के लिए:
# Quickly stage, commit, and push changes
acp = !git add -A && git commit -m \\"$1\\" && git push
- यदि आप टीम में काम करते हैं, तो टीम में उपयोग किए जाने वाले उपनामों को मानकीकृत करने पर विचार करें। और, यदि आपकी टीम कोई विकी या आंतरिक दस्तावेज़ीकरण प्लेटफ़ॉर्म उपयोग करती है, तो Git उपनामों पर एक पेज शामिल करें और जैसे-जैसे प्रोजेक्ट विकसित हो, उसे अपडेट करें।
स्पष्ट दस्तावेज़ीकरण और संवाद यह सुनिश्चित करते हैं कि हर कोई समझता है कि प्रत्येक उपनाम क्या करता है, जिससे गलतियों का जोखिम घटता है और नए शॉर्टकट अपनाना आसान होता है।
सुरक्षा और वैधीकरण
एक और बिंदु सुरक्षा है। उपनाम शक्तिशाली होते हुए भी, यदि सावधानी से प्रबंधित न किए जाएँ, तो जोखिम ला सकते हैं। उदाहरण के लिए, ऐसे उपनाम जो विध्वंसक क्रियाएँ करते हैं, जैसे ब्रांच हटाना या फोर्स-पुश करना, उन्हें अच्छी तरह सोचा-समझा जाना चाहिए और गैर-आवश्यक डेटा पर परीक्षण किया जाना चाहिए। आप नहीं चाहेंगे कि आप कुछ निरापद कर रहे हों और अनजाने में अपनी रिपॉजिटरी से अहम ब्रांचें हटा बैठें!
संभावित रूप से खतरनाक Git उपनामों का उपयोग करते समय आप एक जीवन-रक्षक उपाय --dry-run फ्लैग को अपना सकते हैं। यह आपको उपनाम उपयोग करते समय प्रस्तावित क्रिया का पूर्वावलोकन करने देता है—वह भी बिना वास्तव में उसे किए! उदाहरण के लिए, मान लीजिए आप file.txt हटाना चाहते हैं किसी उपनाम से। आप पहले उसे dry run के रूप में चलाकर यह सुनिश्चित कर सकते हैं कि सही क्रिया ही निष्पादित होगी।
git rm --dry-run file.txt
एक और संभावित सुरक्षा चिंता वे उपनाम हैं जो शेल कमांड्स या बाहरी स्क्रिप्ट्स चलाते हैं। ! से शुरू होने वाले उपनाम जो भी उसके बाद है उसे आपके शेल में निष्पादित करते हैं, जिसका अर्थ है कि खराब समीक्षा किया गया या अविश्वसनीय उपनाम फाइलें हटा सकता है, डेटा चुरा सकता है, या अन्य हानिकारक क्रियाएँ कर सकता है। इसी तरह, बाहरी स्क्रिप्ट्स को कॉल करने वाले उपनाम भी जोखिमपूर्ण हो सकते हैं यदि स्क्रिप्ट अप्रमाणित स्रोत से आई हो या उसमें संशोधन किया गया हो। हर उपनाम का उपयोग करने से पहले उसकी समीक्षा करना और इंटरनेट से उपनामों को आँख बंद करके कॉपी करने से बचना महत्वपूर्ण है। यही कारण है कि मैं Git कमांड्स को शेल कमांड्स के साथ एक ही उपनाम में मिलाना पसंद नहीं करता।
निष्कर्ष
Git उपनाम एक शक्तिशाली, फिर भी अक्सर कम उपयोग किया जाने वाला फीचर है जो व्यक्तिगत और टीम—दोनों की उत्पादकता को नाटकीय रूप से बढ़ा सकता है। जटिल या दोहरावदार कमांड्स को यादगार शॉर्टकट्स में समेटने की अनुमति देकर, उपनाम संज्ञानात्मक बोझ घटाते हैं, टाइपिंग त्रुटियाँ कम करते हैं, और आपके दैनिक कार्यप्रवाह को सरल बनाते हैं।
यदि आपके और प्रश्न हैं या आप और गहराई में जाना चाहते हैं, तो Complete Git Cheat Sheet और इस लेख में लिंक किए गए अन्य संसाधन देखें। यदि आप अपने कमांड-लाइन अनुभव को सरल बनाने के अन्य तरीकों के बारे में उत्सुक हैं, तो आपको यह भी पसंद आ सकता है: How to Use a SQL Alias to Simplify Your Queries।

मैं एक पीएचडी हूँ, जिसके पास जैविक अनुसंधान परिवेश में डेटा के साथ काम करने का 13 वर्षों का अनुभव है। मैं Python, MATLAB और R सहित कई प्रोग्रामिंग भाषाओं में सॉफ्टवेयर बनाती/बनाता हूँ। मुझे सीखने के प्रति अपने प्रेम को दुनिया के साथ साझा करने का जुनून है।
FAQs
Git उपनाम क्या है?
Git उपनाम एक या एक से अधिक Git कमांड्स के लिए कस्टम शॉर्टकट होता है। यह आपको बिना ज़्यादा टाइपिंग के कमांड्स या उनके अनुक्रम को जल्दी से चलाने देता है।
क्या मैं कई रिपॉजिटरीज़ में Git उपनामों का उपयोग कर सकता/सकती हूँ?
हाँ। किसी Git उपनाम को ग्लोबल सेट करके, आप उसे कई रिपॉजिटरीज़ में उपयोग कर पाएँगे। हालाँकि, कोई भी लोकल उपनाम ग्लोबल वाले को ओवरराइड कर देगा।
यदि मुझे किसी Git उपनाम की आवश्यकता नहीं रही, तो उसे कैसे हटाऊँ?
किसी Git उपनाम को हटाने के लिए, आप या तो Git कॉन्फ़िगरेशन फाइल खोलकर उसे मैन्युअली हटा सकते हैं या कमांड लाइन में --unset फ्लैग का उपयोग कर सकते हैं।
मैं अपने विशिष्ट कार्यप्रवाह के लिए Git उपनामों को कैसे कस्टमाइज़ कर सकता/सकती हूँ?
अपने विशिष्ट कार्यप्रवाह के लिए Git उपनामों को कस्टमाइज़ करने का सबसे अच्छा तरीका यह है कि आप किन कमांड्स और अनुक्रमों का सबसे अधिक उपयोग करते हैं, इस पर विचार करें और उन्हें सरल या स्वचालित करने के लिए कस्टम उपनाम बनाएँ। Git उपनाम बेहद व्यक्तिगत हो सकते हैं और वे उन कार्यों को सरल बना सकते हैं जो आपको व्यक्तिगत रूप से परेशान करते हैं।
क्या Git उपनाम और शेल उपनाम एक ही चीज़ हैं?
नहीं। Git उपनाम Git में परिभाषित होते हैं और केवल Git कमांड्स का उपयोग करते हैं। शेल उपनाम आपके शेल के भीतर परिभाषित होते हैं और कई टूल्स की कमांड्स का उपयोग कर सकते हैं, जिनमें Git भी शामिल है।
Git संस्करण प्रबंधन, कोड साझा करने, और जटिल कार्यों पर सहयोग के लिए एक शक्तिशाली समाधान है। यह कमांड लाइन से आसानी से सुलभ भी है, जिससे इस बहुमूल्य टूल तक तेज़ पहुंच मिलती है। लेकिन दिन में कई बार लंबी कमांड्स टाइप करना जल्दी ही उबाऊ हो सकता है। इसलिए इंजीनियरों ने शॉर्टकट परिभाषित करने का तरीका निकाला है, जिन्हें Git उपनाम (aliases) कहा जाता है।
Git उपनाम कस्टम शॉर्टकट होते हैं जो आपको किसी भी Git ऑपरेशन या ऑपरेशनों के समूह के लिए अपनी कमांड्स बनाने देते हैं। इससे कम टाइपिंग के साथ आपका काम थोड़ा आसान हो जाता है और आपका कार्यप्रवाह आपके व्यक्तिगत या आपकी कंपनी के स्टाइल के अनुरूप ढल जाता है।
इस ट्यूटोरियल में, हम देखेंगे कि Git उपनाम क्या हैं, उनका उपयोग कैसे करें, और उन्हें जिम्मेदारी से साझा करने के टिप्स। यदि आप Git में नए हैं, तो गहराई में जाने से पहले हमारी Introduction to Git कोर्स और GitHub Foundations ट्रैक देखिए।
Git उपनाम के मूल सिद्धांत
कस्टम शॉर्टकट बनाना शुरू करने से पहले, आइए चर्चा करें कि Git उपनाम क्या हैं, वे कैसे काम करते हैं, और डेवलपर्स के लिए ये इतने उपयोगी क्यों हैं।
Git उपनाम क्या हैं?
Git उपनाम आपकी Git कॉन्फ़िगरेशन में परिभाषित एक कस्टम कमांड होता है। यह मूलतः आपकी सबसे सामान्य Git कमांड्स का शॉर्टहैंड है।
यदि आप पहले से कमांड लाइन से परिचित हैं, तो आपको लग सकता है कि Git उपनाम शेल उपनामों जैसे ही हैं। लेकिन कुछ अहम अंतर हैं। शेल उपनाम आपके शेल की कॉन्फ़िगरेशन में परिभाषित होते हैं और उनका उपयोग किसी भी कमांड-लाइन टूल के लिए किया जा सकता है, केवल Git के लिए नहीं।
वहीं Git उपनाम Git की अपनी कॉन्फ़िगरेशन के भीतर परिभाषित होते हैं और केवल तभी उपलब्ध होते हैं जब आप git कमांड का उपयोग करते हैं। Git उपनाम पोर्टेबल भी हो सकते हैं, क्योंकि वे आपकी Git कॉन्फ़िग के साथ चलते हैं। इसका मतलब है कि आप उन्हें अपनी टीम के साथ साझा कर सकते हैं और वे अलग-अलग वातावरणों में एकसमान ढंग से काम करेंगे। इन्हें वर्शन कंट्रोल सेटअप के हिस्से के रूप में दस्तावेज़ित और मेंटेन करना भी शेल उपनामों की तुलना में आसान है। डेवलपर्स समय और ऊर्जा बचाने, टाइपो घटाने और अपने कार्यप्रवाह को स्वचालित करने के लिए Git उपनामों का उपयोग करते हैं।
यदि आप अपने कार्यप्रवाह में शेल को शामिल करने में रुचि रखते हैं, तो हमारे shell courses देखें और सीखें कैसे।
उपनाम का दायरा और स्थायित्व
उपनामों की दो मुख्य श्रेणियां हैं: वैश्विक (global) उपनाम और स्थानीय (local) उपनाम। प्राथमिक अंतर यह है कि आप उन्हें कहाँ परिभाषित करते हैं और वे कहाँ उपयोग के लिए उपलब्ध होते हैं।
ग्लोबल उपनाम आपके सिस्टम की हर रिपॉजिटरी में उपयोग के लिए उपलब्ध होता है। जब आप कोई ग्लोबल उपनाम सेट करते हैं, तो वह आपकी ग्लोबल Git कॉन्फ़िगरेशन फाइल में स्टोर होता है। यह उन शॉर्टकट्स को परिभाषित करने की सबसे अच्छी जगह है जिन्हें आप हर जगह उपयोग करना चाहते हैं।
ग्लोबल उपनामों के उपयोग पर एक त्वरित चेतावनी: वे आपकी मशीन-विशिष्ट होते हैं। यदि आप मशीनें बदलते हैं या सहकर्मियों की मशीन पर मदद कर रहे हैं, तो यह याद रखना महत्वपूर्ण है। आपके ग्लोबल उपनाम उनकी मशीन पर काम नहीं करेंगे।
दूसरी ओर, लोकल उपनाम किसी एकल रिपॉजिटरी के लिए विशिष्ट होता है। वे उसी विशेष रिपॉजिटरी की कॉन्फ़िगरेशन फाइल में स्टोर होते हैं। लोकल उपनाम तब उपयोगी होते हैं जब आपको प्रोजेक्ट-विशिष्ट शॉर्टकट चाहिए या आप अपनी ग्लोबल सेटअप को प्रभावित किए बिना प्रयोग करना चाहते हैं।
लोकल उपनाम को प्राथमिकता मिलती है
यह ध्यान देने योग्य है कि यदि आप वही उपनाम ग्लोबली और लोकली दोनों जगह परिभाषित करते हैं, तो लोकल उपनाम को प्राथमिकता मिलती है। इसका अर्थ है कि लोकल रिपॉजिटरी में रहते हुए आपका कंप्यूटर लोकल उपनाम का उपयोग करेगा और ग्लोबल वाले को अनदेखा करेगा। जैसे ही आप उस रिपॉजिटरी से बाहर निकलेंगे, ग्लोबल उपनाम फिर प्रभावी हो जाएगा। यह एक उपयोगी विशेषता है क्योंकि यह आपको विशिष्ट प्रोजेक्ट्स के लिए ग्लोबल डिफॉल्ट्स को ओवरराइड करने देती है।
विभिन्न स्तरों पर Git को कॉन्फ़िगर करने के बारे में अधिक जानने के लिए देखें Intermediate Git।
ऊपर दिया गया फ़्लोचार्ट दिखाता है कि Git सबसे पहले आपके उपनाम को लोकल कॉन्फ़िगरेशन फाइल में ढूंढता है। यदि वह वहाँ नहीं मिलता, तो Git यह तय करने के लिए ग्लोबल कॉन्फ़िगरेशन फाइल देखता है कि कौन सी कमांड(कमांड्स) चलानी हैं।
Git उपनाम बनाना और कॉन्फ़िगर करना
Git उपनाम सेट करना सीधा-सादा है, लेकिन आप कौन-सा तरीका चुनते हैं यह आपके कार्यप्रवाह, ऑपरेटिंग सिस्टम, और व्यक्तिगत पसंद पर निर्भर कर सकता है।
निर्माण के तरीके
Git उपनाम बनाने के दो मुख्य तरीके हैं; आप कमांड लाइन का उपयोग करके नया Git उपनाम बना सकते हैं या आप सीधे अपनी Git कॉन्फ़िगरेशन फाइल संपादित कर सकते हैं।
कमांड लाइन का उपयोग
उपनाम जोड़ने का सबसे आसान तरीका
git configकमांड से है। सामान्य रेसिपी है:उदाहरण के लिए, चलिए
git commit -mके लिए एक शॉर्टकट बनाते हैं, जिसका उपयोग संदेश के साथ स्टेज्ड बदलावों को रिपॉजिटरी में सेव करने के लिए किया जाता है।यह कमांड
cmनाम का एक नया उपनाम जोड़ता है जोgit commit -mचलाता है।--globalफ्लैग बताता है कि उपनाम आपकी सभी रिपॉजिटरी में उपलब्ध होना चाहिए। यदि आप--globalछोड़ देते हैं, तो उपनाम डिफॉल्ट रूप से वर्तमान रिपॉजिटरी पर लागू लोकल उपनाम बन जाएगा।एक बार जब आपने अपने मनचाहे उपनाम बना लिए, तो आप उन्हें दोबारा जाँचना चाह सकते हैं। आप वर्तमान में परिभाषित सभी उपनामों को देखने के लिए कमांड लाइन का उपयोग कर सकते हैं:
यह हर उपनाम और उसकी संबंधित कमांड की सूची देगा। आप किसी विशिष्ट उपनाम की जाँच भी कर सकते हैं। उदाहरण के लिए, निम्न कमांड आपकी कॉन्फ़िगरेशन फाइल से
lgउपनाम का मान लौटाएगी।यह सुनिश्चित करने का एक तेज़ तरीका है कि आपके उपनाम सही तरीके से सेट हैं।
कॉन्फ़िगरेशन फाइल सीधे संपादित करना
जब आप ऊपर दी गई कमांड्स का उपयोग करते हैं, तो आपकी Git कॉन्फ़िगरेशन फाइल (आगे इसे Git कॉन्फ़िग फाइल कहेंगे), चाहे ग्लोबल हो या लोकल, आपके चुने हुए उपनामों के साथ अपडेट होती है। आप अपनी कॉन्फ़िग फाइल को सीधे संशोधित करके इस प्रक्रिया को दरकिनार कर सकते हैं।
आपको अपनी Git कॉन्फ़िग फाइल किसी टेक्स्ट एडिटर में खोलकर
[alias]सेक्शन के अंतर्गत उपनाम जोड़ने होंगे। Windows में, यह फाइल आम तौर पर ग्लोबल उपनामों के लिएC:\\Users\\<YourUsername>\\.gitconfigमें या लोकल उपनामों के लिए किसी रिपॉजिटरी में.git\\configमें मिलती है। macOS या Linux पर, ग्लोबल उपनाम आमतौर पर~/.gitconfigमें और लोकल वाले.git/configमें होते हैं।आपकी Git कॉन्फ़िग फाइल कुछ इस तरह दिखनी चाहिए (यदि यह ग्लोबल फाइल है, तो इसमें कुछ और भाग भी हो सकते हैं):
यदि हम
[alias]सेक्शन तक स्क्रॉल करें, तो हम अपने कस्टम शॉर्टकट जोड़ सकते हैं:यह तरीका खास तौर पर तब उपयोगी है जब आप एक साथ कई उपनाम जोड़ना चाहते हैं। इससे किसी सहयोगी या ऑनलाइन संसाधन से उपनामों के सेट को कॉपी-पेस्ट करना भी आसान हो जाता है।
सामान्य Git कमांड्स के एक उपयोगी संदर्भ के लिए हमारा Complete Git Cheat Sheet देखें।
OS और शेल-विशिष्ट कॉन्फ़िगरेशन
Git उपनाम आपकी Git कॉन्फ़िगरेशन के भीतर परिभाषित होते हैं, इसलिए वे ऑपरेटिंग सिस्टम और शेल्स में काम करते हैं। हालाँकि, उनका उपयोग आपके वातावरण पर निर्भर कर सकता है।
Windows पर, Git उपनाम Git Bash और WSL (Windows Subsystem for Linux) में भरोसेमंद रूप से काम करते हैं। Command Prompt और PowerShell में
stजैसे सरल उपनाम ठीक चलते हैं, लेकिन पाइप्स या एक से अधिक कमांड्स जैसे शेल फीचर्स पर निर्भर उन्नत उपनाम अपेक्षित रूप से व्यवहार नहीं कर सकते। जटिल उपनामों के लिए Git Bash या WSL बेहतर विकल्प है।macOS और Linux पर, Git उपनाम आमतौर पर Bash, Zsh और अन्य Unix-जैसे शेल्स में एक ही तरीके से काम करते हैं। साधारण और जटिल दोनों प्रकार के उपनाम बिना समस्या उपयोग किए जा सकते हैं।
Fish शेल एक विशेष मामला है क्योंकि यह Bash और Zsh से अलग सिंटैक्स का उपयोग करता है। कुछ उन्नत Git उपनाम जो POSIX शेल सिंटैक्स मान लेते हैं, Fish में सही से नहीं चल सकते। ऐसी स्थितियों में, आपको उपनाम को शेल फ़ंक्शन के रूप में फिर से लिखने या सरल Git उपनामों तक सीमित रहने की आवश्यकता हो सकती है।
शेल बेसिक्स पर अधिक के लिए हमारा Bash & Zsh Shell Terminal Basics Cheat Sheet देखें।