कोर्स
इस लेख में, मैं आपको GitHub Codespaces के बारे में वह सब बताऊँगा जो आपको जानना चाहिए। इसे सीखना उपयोगी है क्योंकि यह तुरंत, क्लाउड-आधारित डेवलपमेंट वातावरण देकर डेवलपर्स के काम करने का तरीका बदल रहा है। हम GitHub Codespaces के जीवनचक्र पर नज़र डालेंगे ताकि आप प्रक्रिया के विभिन्न चरण समझ सकें। साथ ही, हम यह भी देखेंगे कि अपने काम करने की शैली और ज़रूरतों के अनुसार आप अपना codespace कैसे अनुकूलित कर सकते हैं।
यदि आप अभी Git और GitHub से परिचित नहीं हैं तो चिंता न करें। हमारा GitHub Concepts कोर्स लेकर आप रिपोजिटरी, README, और कई बुनियादी चीज़ें बनाना सीख सकते हैं। साथ ही, हमारे Foundations of Git कोर्स को भी नज़रअंदाज़ न करें ताकि आप वर्ज़न कंट्रोल की बुनियाद से शुरुआत कर सकें।
GitHub Codespace क्या है?
GitHub Codespace एक क्लाउड-आधारित डेवलपमेंट वातावरण है जो डेवलपर्स को सीधे क्लाउड में कोड लिखने, परीक्षण करने और डिबग करने देता है, जिससे जटिल लोकल सेटअप की आवश्यकता नहीं रहती। जब कोई codespace बनाया जाता है, तो यह एक Docker कंटेनर एक वर्चुअल मशीन पर लॉन्च करता है, जिसे प्रोजेक्ट के लिए आवश्यक टूल, लाइब्रेरी और डिपेंडेंसी से पहले से कॉन्फ़िगर किया गया होता है। GitHub Codespaces की एक महत्वपूर्ण विशेषता यह भी है कि यह Visual Studio Code जैसे IDEs के साथ इंटीग्रेट होता है, जैसा कि हम आगे इस लेख में देखेंगे।

Codespace वर्कफ़्लो। स्रोत: GitHub
GitHub Codespaces का जीवनचक्र समझना
GitHub Codespaces को समझने के लिए codespace के जीवनचक्र को समझना ज़रूरी है। हर चरण में कुछ विशिष्ट क्रियाएँ होती हैं जो आपके अनुभव या संसाधनों के उपयोग पर असर डालती हैं।
निर्माण चरण
एक codespace बनाते समय आपके पास दो मुख्य विकल्प होते हैं: किसी मौजूदा प्रोजेक्ट से शुरू करना या नया प्रोजेक्ट शुरू करना। यदि आप किसी मौजूदा प्रोजेक्ट पर काम कर रहे हैं, तो आप आमतौर पर किसी मौजूदा रिपोजिटरी ब्रांच से codespace बनाएँगे, और यह codespace आपके चुने गए विशेष ब्रांच से जुड़ा होगा। यदि आप नया प्रोजेक्ट शुरू कर रहे हैं, तो आप टेम्पलेट का उपयोग कर सकते हैं। टेम्पलेट उपयोगी है क्योंकि यह प्रोजेक्ट शुरू करने के लिए एक पूर्व-कॉन्फ़िगर वातावरण देता है।
ध्यान दें कि यद्यपि टेम्पलेट मुख्य रूप से नए प्रोजेक्ट शुरू करते समय उपयोग होते हैं, यदि आप किसी मौजूदा प्रोजेक्ट पर काम कर रहे हैं और किसी टेम्पलेट की विशिष्ट सेटिंग्स उपयोग करना चाहते हैं, तो आप अपने वातावरण को बेहतर बनाने के लिए टेम्पलेट का कॉन्फ़िगरेशन लागू कर सकते हैं। यह भी एक विकल्प है।
GitHub मेनू में Codespaces ढूँढना। चित्र: लेखक
डिज़ाइन के अनुसार, पूरा वर्कफ़्लो और Git व ब्रांचों के साथ अंतःक्रिया वैसी ही है जैसी आपकी लोकल मशीन पर काम करते समय होती है। दोनों ही स्थितियों में, आप अपना प्रोजेक्ट GitHub रिपोजिटरी पर प्रकाशित करेंगे और सुनिश्चित करेंगे कि अपने बदलाव GitHub पर पुश करें।
रीबिल्डिंग चरण
नया codespace बनाना, codespace को रीबिल्ड करने का एक विकल्प है। फिर भी, कुछ स्थितियों में codespace को रीबिल्ड करना फ़ायदेमंद होता है, इसलिए अंतर समझना महत्वपूर्ण है। एक तो, रीबिल्ड करने से आप कंटेनर कॉन्फ़िगरेशन में अपडेट लागू कर सकते हैं, बिना /workspaces डायरेक्टरी के अंदर के काम को खोए। इसके अलावा, रीबिल्ड करते समय GitHub Codespaces पहले के बिल्ड से कैश्ड इमेज का पुन: उपयोग करता है, जिससे लाइब्रेरी को फिर से इंस्टॉल करने की आवश्यकता से बचकर प्रक्रिया तेज़ हो जाती है।
कंटेनर को रीबिल्ड करना। चित्र: लेखक
रोकने का चरण
हम codespace को इसलिए रोकते हैं क्योंकि जब वातावरण पॉज़ रहता है तो कोई संसाधन उपयोग नहीं होते, और इससे लागत प्रबंधन में मदद मिलती है। ध्यान रहे कि चालू codespace पर CPU चार्ज लगते हैं, जबकि रोके गए codespace पर केवल स्टोरेज चार्ज लगते हैं।
यह जानना महत्वपूर्ण है कि यदि आप codespace को स्पष्ट रूप से नहीं रोकते, तो यह निष्क्रियता के कारण टाइमआउट होने तक चलता रहेगा। टाइमआउट अवधि एक कस्टमाइज़ेशन है जिसे हम चुन सकते हैं, जिसे मैं अगले खंड में कवर करूँगा। यह भी जानना ज़रूरी है कि केवल ब्राउज़र टैब बंद कर देने से codespace स्वयं नहीं रुकता। यह एक आम भूल है जो लोग करते हैं।

Codespace को रोकना। चित्र: लेखक
हटाने का चरण
जब आप किसी प्रोजेक्ट पर काम पूरा कर लें, तो अनावश्यक स्टोरेज चार्ज से बचने के लिए codespace हटा दें। अपना कार्यक्षेत्र सुव्यवस्थित रखना भी हमेशा एक अच्छा अभ्यास है।
आप हटाने से पहले अपने बदलाव किसी रिमोट ब्रांच पर पुश कर सकते हैं या बिना कमिट किए गए किसी भी बदलाव को पूरी तरह त्याग सकते हैं। इसके अलावा, जो codespaces एक तय अवधि तक निष्क्रिय रहते हैं वे स्वतः हटा दिए जाएँगे। यह डेवलपर्स को स्टोरेज और लागत दोनों प्रबंधित करने में मदद के लिए डिज़ाइन किया गया है। स्वतः हटाने से पहले की अवधि चुनना एक और कस्टमाइज़ेशन है, जिसे हम नीचे कवर करेंगे।

Codespace हटाना। चित्र: लेखक
GitHub Codespaces को अनुकूलित करना
GitHub Codespaces की एक बड़ी बात यह है कि वे अत्यधिक अनुकूलन योग्य हैं। आप कोई कॉन्फ़िगरेशन चुन सकते हैं या विशिष्ट टूल सेलेक्ट कर सकते हैं। व्यापक रूप से, हम कस्टमाइज़ेशन को दो श्रेणियों में बाँट सकते हैं: वे जो आपकी कार्यशैली के अनुरूप आपके कार्यक्षेत्र को व्यक्तिगत बनाने के लिए हैं, और वे जो संसाधन प्रबंधन और लागत कम रखने में मदद के लिए हैं।
अपने codespace वातावरण का निजीकरण
सबसे पहले हम यह देख सकते हैं कि अपने वातावरण को कैसे व्यक्तिगत बनाएँ। डेवलपर्स को वे कस्टमाइज़ेशन पसंद आते हैं जो उनके खास वर्कफ़्लो से मेल खाते हैं। इनमें से अधिकतर कस्टमाइज़ेशन तब मिलेंगे जब आप अपनी प्रोफ़ाइल तस्वीर पर क्लिक कर सेटिंग्स मेनू खोलेंगे, जैसा कि नीचे चित्र में दिखाया गया है।
सेटिंग्स मेनू खोलना। चित्र: लेखक
Settings Sync
सबसे पहले आप यह सुनिश्चित करना चाहेंगे कि आपकी सेटिंग्स VS Code के डेस्कटॉप संस्करण और वेब-आधारित क्लाइंट दोनों में एक जैसी हों। आप Settings Sync सक्षम करके यह कर सकते हैं ताकि किसी एक स्थान पर किए गए बदलाव या कस्टमाइज़ेशन दूसरे पर भी लागू हो जाएँ। यह उन डेवलपर्स के लिए बहुत सुविधाजनक है जिन्हें वातावरणों के बीच स्विच करना पड़ सकता है।

Settings Sync सक्षम करना। चित्र: लेखक
यदि क्लाउड सेटिंग्स और आपकी लोकल सेटिंग्स में अंतर हो, या आपकी किसी मशीन ने कुछ समय से सिंक नहीं किया हो, तो संघर्ष हो सकते हैं। संघर्ष की स्थिति में, आपके पास लोकल या क्लाउड सेटिंग्स में से किसी एक से ओवरराइट करने का विकल्प होगा, या आप और विशिष्ट रूप से चुन सकते हैं कि किन सेटिंग्स को रखना है।
Codespace का नाम बदलें
GitHub हर नए codespace को एक डिस्प्ले नाम देता है। संभवतः, आप स्वतः-जनित नाम नहीं रखना चाहेंगे, खासकर यदि आपके पास कई codespaces हों। मैं ऐसा नाम रखने की कोशिश करता हूँ जो प्रोजेक्ट के उद्देश्य को दिखाए और नेविगेट करना आसान बनाए।
Codespace का नाम बदलना। चित्र: लेखक
आपको यह पता होना चाहिए कि डिस्प्ले नाम के अलावा, हर codespace का एक स्थायी नाम भी होता है जिसे आप बदल नहीं सकते। यह स्थायी नाम वास्तव में डिस्प्ले नाम ही होता है जिसके अंत में कुछ रैंडम अक्षर-चर जोड़ दिए जाते हैं। स्थायी नाम का उद्देश्य codespace को एक यूनिक पहचानकर्ता देना है। यदि आप GitHub कमांड लाइन इंटरफ़ेस उपयोग करने की योजना बना रहे हैं तो स्थायी नाम पर ध्यान दें। यह GitHub सपोर्ट टीम से संपर्क करने की स्थिति में भी काम आता है। आप ब्राउज़र में codespace खोलकर स्थायी नाम पा सकते हैं, जहाँ ब्राउज़र के सबडोमेन में वही स्थायी नाम होता है।
शेल बदलना
यदि आप VS Code डेस्कटॉप एप्लिकेशन में नया codespace खोलते हैं, तो खुलने वाला शेल आपकी लोकल सेटिंग्स पर निर्भर करता है। यदि आप VS Code वेब क्लाइंट का उपयोग करते हैं, तो डिफ़ॉल्ट रूप से bash खुलता है। आप चाहें तो अपना शेल बदल सकते हैं, उदाहरण के लिए zsh या fish, और आप इसे सेटिंग्स में इस तरह लागू कर सकते हैं कि हर बार आपका पसंदीदा शेल ही खुले।
शेल बदलना। चित्र: लेखक
डिफ़ॉल्ट एडिटर सेट करें
आप अपना पसंदीदा कोड एडिटर भी चुन सकते हैं। उदाहरण के लिए, यदि आपको Visual Studio Code बहुत पसंद है, तो आप सेटिंग्स में यह कॉन्फ़िगर कर सकते हैं कि हर बार codespace बनाते या खोलते समय VS Code ही लॉन्च हो। आप VS Code, JetBrains और JupyterLab में से चुन सकते हैं।
डिफ़ॉल्ट एडिटर चुनना। चित्र: लेखक
संसाधन और प्रदर्शन प्रबंधन
अब, संसाधन आवंटन और प्रदर्शन से संबंधित कुछ सेटिंग्स देखें।
मशीन प्रकार बदलना
आप अपने वातावरण को चलाने वाले अंतर्निहित हार्डवेयर का चयन या संशोधन कर सकते हैं। उदाहरण के लिए, आप अधिक CPU, RAM या स्टोरेज वाली मशीन पर स्विच कर सकते हैं। इस तरह, आप सुनिश्चित कर सकते हैं कि आपका codespace उस काम को संभालने के लिए पर्याप्त संसाधन रखता है जिस पर आप काम कर रहे हैं, और साथ ही अनावश्यक संसाधन न लें। यह देखना महत्वपूर्ण है कि आप कौन-सा रिमोट मशीन प्रकार उपयोग कर रहे हैं क्योंकि प्रकार अलग-अलग बिलिंग टियर में आते हैं।
पसंदीदा मशीन प्रकार चुनना। चित्र: लेखक
ध्यान रखें कि आप केवल उन्हीं codespaces का मशीन प्रकार बदल सकते हैं जो प्रकाशित हैं, इसलिए यदि आप किसी ऐसे टेम्पलेट से codespace बनाते हैं जो GitHub रिपोजिटरी से जुड़ा नहीं है, तो आपके पास मशीन प्रकार बदलने का विकल्प नहीं होगा। साथ ही, यदि आप किसी संगठन का हिस्सा हैं, तो आपकी नीति के नियमों पर निर्भर करते हुए आपके पास मशीन प्रकार बदलने का विकल्प न हो सकता है।
टाइमआउट अवधि अनुकूलित करें
डिफ़ॉल्ट रूप से, GitHub Codespaces 30 मिनट बाद खुद-ब-खुद रुक जाता है, लेकिन आप इसे अपनी व्यक्तिगत सेटिंग्स में समायोजित कर सकते हैं। अधिकतम टाइमआउट अवधि चार घंटे है। संसाधन उपयोग के प्रति सतर्क रहना और अनावश्यक रूप से निष्क्रिय codespaces को चलने से रोकना महत्वपूर्ण है।
टाइमआउट अवधि बदलना। चित्र: लेखक
स्वचालित हटाना कॉन्फ़िगर करें
निष्क्रिय codespaces एक निश्चित अवधि के बाद हटा दिए जाएँगे। यह संसाधन मुक्त कराने की सुविधा के रूप में डिज़ाइन किया गया है। आप यह कॉन्फ़िगर कर सकते हैं कि रोके गए codespaces हटाए जाने से पहले कितने समय तक रखे जाएँ, लेकिन ध्यान रखें कि अधिकतम रिटेंशन अवधि 30 दिन है।
रिटेंशन अवधि सेट करना। चित्र: लेखक
भौगोलिक क्षेत्र चुनें
आप अपनी प्रोफ़ाइल सेटिंग्स में जाकर वह डिफ़ॉल्ट भौगोलिक क्षेत्र चुन सकते हैं जहाँ आपके GitHub Codespaces होस्ट होंगे। आपके स्थान के नज़दीक का क्षेत्र चुनने से प्रदर्शन बेहतर हो सकता है, जैसे तेज़ लोड समय और कम लेटेंसी, और यह आपको डेटा रेज़िडेंसी आवश्यकताओं के अनुरूप अपने डेटा के भंडारण का स्थान चुनने देता है।
क्षेत्र बदलना। चित्र: लेखक
GitHub.dev बनाम GitHub Codespaces
यदि आप GitHub से परिचित हैं, तो आप GitHub.dev से भी परिचित हो सकते हैं, और यह सोच रहे होंगे कि GitHub.dev और GitHub Codespaces में क्या अंतर है।
एक बात यह है कि GitHub.dev एक हल्का, ब्राउज़र-आधारित कोड एडिटर है, जबकि GitHub Codespaces पूर्ण डेवलपमेंट वातावरण देता है जहाँ आप अपना कोड चला और परीक्षण कर सकते हैं। दूसरे शब्दों में, GitHub.dev सीमित दायरे के कारण मूलतः केवल कोड एडिट के लिए बनाया गया है।
GitHub Codespaces IDEs जैसे VS Code के साथ भी इंटीग्रेट होता है, और क्लाउड व लोकल वातावरणों में सेटिंग्स के बदलाव Settings Sync फीचर के ज़रिए सिंक किए जा सकते हैं, जैसा कि हमने देखा। डेवलपर्स यह भी नोट करेंगे कि GitHub.dev वातावरण स्थायी नहीं होते, यानी जब तक आप मैन्युअल रूप से रिपोजिटरी में बदलाव कमिट नहीं करते, आपका काम सत्रों के बीच सेव नहीं होता। दूसरी ओर, GitHub Codespaces में आप codespace बंद या रोक भी दें, तब भी बदलाव सहेजे रहते हैं।
कुल मिलाकर, हमें GitHub Codespaces को बड़े प्रोजेक्ट्स और अधिक जटिल वर्कफ़्लो के लिए विकल्प के रूप में देखना चाहिए क्योंकि यह आपके व्यक्तिगत मशीन पर कॉन्फ़िगरेशन या संसाधन प्रबंधन की आवश्यकता के बिना डेवलपमेंट वातावरण की शक्ति देता है।
| फीचर | GitHub.dev | GitHub Codespaces |
|---|---|---|
| उद्देश्य | GitHub रिपोजिटरी में होस्ट किए कोड में त्वरित संपादन हेतु ब्राउज़र-आधारित कोड एडिटर | पूर्ण-विशेषताओं वाला, क्लाउड-आधारित डेवलपमेंट वातावरण |
| वातावरण | कोई सेटअप नहीं; ब्राउज़र के माध्यम से त्वरित पहुँच | पूर्व-कॉन्फ़िगर टूल, लाइब्रेरी और डिपेंडेंसी के साथ Docker-आधारित कंटेनर |
| IDE इंटीग्रेशन | बिल्ट-इन एडिटर के साथ सीमित संपादन अनुभव | Visual Studio Code, JetBrains, और JupyterLab का समर्थन |
| कस्टमाइज़ेशन | न्यूनतम कस्टमाइज़ेशन | अत्यधिक कस्टमाइज़ करने योग्य |
| संसाधन प्रबंधन | कोई संसाधन प्रबंधन आवश्यक नहीं | उपयोगकर्ता CPU चार्ज, स्टोरेज चार्ज प्रबंधित करते हैं और टाइमआउट सेट करते हैं |
| परिनियोजन | परिनियोजन के लिए डिज़ाइन नहीं | परिनियोजन वर्कफ़्लो के लिए पूर्ण समर्थन |
| उपलब्धता | किसी भी GitHub रिपोजिटरी के लिए उपलब्ध | सब्सक्रिप्शन और अधिक संसाधनों की आवश्यकता |
निष्कर्ष
जैसे-जैसे हम वितरित और लचीले कार्य वातावरण की ओर बढ़ रहे हैं, GitHub Codespaces जैसे टूल सॉफ्टवेयर डेवलपमेंट के भविष्य को आकार देने में बड़ी भूमिका निभाएँगे। विशेष रूप से, GitHub Codespaces कुछ प्रमुख समस्याएँ हल करता है: यह आपको आपकी लोकल मशीन की विशिष्टताओं की परवाह किए बिना तुरंत कोडिंग शुरू करने देता है; किसी भी डिवाइस से डेवलपमेंट वातावरण तक पहुँच देता है; और टीम सदस्यों के साथ समान वातावरणों में सहयोग करने में मदद करता है।
अधिक सीखने के लिए, ये DataCamp आलेख पढ़ें:
- डेटा प्रोफेशनल्स के लिए GitHub सर्टिफिकेशन गाइड
- GitHub समझना: GitHub क्या है और इसका उपयोग कैसे करें
- GitHub Actions और MakeFile: एक व्यावहारिक परिचय
अंत में, DataCamp पॉडकास्ट एपिसोड The Future of Programming with Kyle Daigle, COO at GitHub सुनें। इसमें वे AI-सहायित कोडिंग की स्थिति और उद्योग के आगे बढ़ने के अपने दृष्टिकोण पर चर्चा करते हैं।
अनुभवी डेटा साइंस प्रशिक्षक और बायोस्टैटिस्टिशियन, Python, R और मशीन लर्निंग में विशेषज्ञता के साथ।
अक्सर पूछे जाने वाले प्रश्न
किसी रिपोजिटरी या ब्रांच पर आप अधिकतम कितने codespaces बना सकते हैं?
यदि आपके पास पर्याप्त स्टोरेज है, तो आप प्रति रिपोजिटरी ब्रांच असीमित codespaces बना सकते हैं। जब आप आवंटित संसाधनों से अधिक उपयोग कर लेते हैं, तो आपको नया codespace बनाने से पहले किसी मौजूदा codespace को हटाने का संदेश मिलेगा।
Github.dev और GitHub Codespaces में क्या अंतर है?
GitHub.dev कोड एडिट्स के लिए एक हल्का ब्राउज़र एडिटर है, जबकि GitHub Codespaces जटिल वर्कफ़्लो के लिए पूर्ण क्लाउड-आधारित डेवलपमेंट वातावरण प्रदान करता है।
