38 KiB
GitHub का परिचय
यह पाठ GitHub के मूलभूत पहलुओं को कवर करता है, जो आपके कोड को होस्ट और प्रबंधित करने के लिए एक प्लेटफ़ॉर्म है।
स्केच नोट Tomomi Imura द्वारा
प्री-लेक्चर क्विज़
परिचय
इस पाठ में हम निम्नलिखित विषयों को कवर करेंगे:
- आपके मशीन पर किए गए कार्य को ट्रैक करना
- अन्य लोगों के साथ प्रोजेक्ट पर काम करना
- ओपन सोर्स सॉफ़्टवेयर में योगदान कैसे करें
आवश्यकताएँ
शुरू करने से पहले, आपको यह जांचना होगा कि Git इंस्टॉल है या नहीं। टर्मिनल में टाइप करें:
git --version
यदि Git इंस्टॉल नहीं है, तो Git डाउनलोड करें। फिर, अपने स्थानीय Git प्रोफ़ाइल को टर्मिनल में सेटअप करें:
git config --global user.name "your-name"git config --global user.email "your-email"
यह जांचने के लिए कि Git पहले से कॉन्फ़िगर है या नहीं, आप टाइप कर सकते हैं:
git config --list
आपको एक GitHub खाता, एक कोड एडिटर (जैसे Visual Studio Code), और टर्मिनल (या: कमांड प्रॉम्प्ट) खोलने की आवश्यकता होगी।
github.com पर जाएं और यदि आपने पहले से खाता नहीं बनाया है तो एक खाता बनाएं, या लॉग इन करें और अपनी प्रोफ़ाइल भरें।
✅ GitHub दुनिया में एकमात्र कोड रिपॉजिटरी नहीं है; अन्य भी हैं, लेकिन GitHub सबसे प्रसिद्ध है।
तैयारी
आपको अपने स्थानीय मशीन (लैपटॉप या पीसी) पर एक कोड प्रोजेक्ट के साथ एक फ़ोल्डर और GitHub पर एक सार्वजनिक रिपॉजिटरी की आवश्यकता होगी, जो दूसरों के प्रोजेक्ट्स में योगदान करने के तरीके के उदाहरण के रूप में काम करेगा।
कोड प्रबंधन
मान लें कि आपके पास स्थानीय रूप से एक कोड प्रोजेक्ट के साथ एक फ़ोल्डर है और आप git - संस्करण नियंत्रण प्रणाली का उपयोग करके अपनी प्रगति को ट्रैक करना शुरू करना चाहते हैं। कुछ लोग git का उपयोग करने की तुलना भविष्य के लिए खुद को एक प्रेम पत्र लिखने से करते हैं। जब आप अपने कमिट संदेशों को दिनों, हफ्तों या महीनों बाद पढ़ेंगे, तो आप यह याद कर पाएंगे कि आपने कोई निर्णय क्यों लिया था, या किसी बदलाव को "रोलबैक" कर सकते हैं - बशर्ते आपने अच्छे "कमिट संदेश" लिखे हों।
कार्य: एक रिपॉजिटरी बनाएं और कोड कमिट करें
वीडियो देखें
-
GitHub पर रिपॉजिटरी बनाएं। GitHub.com पर, रिपॉजिटरी टैब में, या नेविगेशन बार के शीर्ष-दाईं ओर, नया रिपो बटन खोजें।
- अपनी रिपॉजिटरी (फ़ोल्डर) को एक नाम दें
- रिपॉजिटरी बनाएं चुनें।
-
अपने कार्य फ़ोल्डर पर जाएं। अपने टर्मिनल में, उस फ़ोल्डर (जिसे डायरेक्टरी भी कहा जाता है) पर स्विच करें जिसे आप ट्रैक करना शुरू करना चाहते हैं। टाइप करें:
cd [name of your folder] -
Git रिपॉजिटरी प्रारंभ करें। अपने प्रोजेक्ट में टाइप करें:
git init -
स्थिति जांचें। अपनी रिपॉजिटरी की स्थिति जांचने के लिए टाइप करें:
git statusआउटपुट कुछ इस तरह दिख सकता है:
Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: file.txt modified: file2.txtआमतौर पर
git statusकमांड आपको यह बताता है कि कौन सी फाइलें सेव करने के लिए तैयार हैं या उनमें बदलाव हैं जिन्हें आप स्थायी बनाना चाहते हैं। -
सभी फाइलें ट्रैकिंग के लिए जोड़ें इसे फाइलों को स्टेजिंग एरिया में जोड़ना भी कहा जाता है।
git add .git addऔर.तर्क इंगित करता है कि आपकी सभी फाइलें और बदलाव ट्रैकिंग के लिए हैं। -
चयनित फाइलें ट्रैकिंग के लिए जोड़ें
git add [file or folder name]यह हमें केवल चयनित फाइलों को स्टेजिंग एरिया में जोड़ने में मदद करता है जब हम सभी फाइलों को एक बार में कमिट नहीं करना चाहते।
-
सभी फाइलें अनस्टेज करें
git resetयह कमांड हमें एक बार में सभी फाइलों को अनस्टेज करने में मदद करता है।
-
एक विशेष फाइल को अनस्टेज करें
git reset [file or folder name]यह कमांड हमें केवल एक विशेष फाइल को अनस्टेज करने में मदद करता है जिसे हम अगले कमिट में शामिल नहीं करना चाहते।
-
अपने कार्य को स्थायी बनाएं। इस बिंदु पर आपने फाइलों को तथाकथित स्टेजिंग एरिया में जोड़ दिया है। एक जगह जहां Git आपकी फाइलों को ट्रैक कर रहा है। बदलाव को स्थायी बनाने के लिए आपको फाइलों को कमिट करना होगा। ऐसा करने के लिए आप
git commitकमांड का उपयोग करके एक कमिट बनाते हैं। एक कमिट आपके रिपॉजिटरी के इतिहास में एक सेविंग पॉइंट का प्रतिनिधित्व करता है। टाइप करें:git commit -m "first commit"यह आपकी सभी फाइलों को कमिट करता है, और संदेश "पहला कमिट" जोड़ता है। भविष्य के कमिट संदेशों के लिए आप अपने विवरण में अधिक वर्णनात्मक होना चाहेंगे ताकि यह स्पष्ट हो सके कि आपने किस प्रकार का बदलाव किया है।
-
अपने स्थानीय Git रिपो को GitHub से कनेक्ट करें। एक Git रिपो आपके मशीन पर अच्छा है लेकिन किसी बिंदु पर आप अपनी फाइलों का बैकअप कहीं रखना चाहेंगे और अन्य लोगों को अपने रिपो पर काम करने के लिए आमंत्रित करना चाहेंगे। ऐसा करने के लिए एक शानदार जगह GitHub है। याद रखें कि हमने पहले ही GitHub पर एक रिपो बनाया है, इसलिए हमें केवल अपने स्थानीय Git रिपो को GitHub से कनेक्ट करना है। कमांड
git remote addयही करेगा। निम्नलिखित कमांड टाइप करें:नोट, कमांड टाइप करने से पहले अपने GitHub रिपो पेज पर जाएं और रिपॉजिटरी URL खोजें। आप इसे नीचे दिए गए कमांड में उपयोग करेंगे।
https://github.com/username/repository_name.gitको अपने GitHub URL से बदलें।git remote add origin https://github.com/username/repository_name.gitयह एक रिमोट, या कनेक्शन, बनाता है जिसका नाम "origin" है और यह आपके द्वारा पहले बनाए गए GitHub रिपॉजिटरी की ओर इशारा करता है।
-
स्थानीय फाइलें GitHub पर भेजें। अब तक आपने स्थानीय रिपो और GitHub रिपो के बीच एक कनेक्शन बनाया है। आइए इन फाइलों को GitHub पर निम्नलिखित कमांड
git pushका उपयोग करके भेजें:नोट, आपकी ब्रांच का नाम
mainसे अलग हो सकता है।git push -u origin mainयह आपके "main" ब्रांच में आपके कमिट्स को GitHub पर भेजता है। कमांड में
-uसहितupstreamब्रांच सेट करना आपके स्थानीय ब्रांच और रिमोट ब्रांच के बीच एक लिंक स्थापित करता है, ताकि आप भविष्य में ब्रांच का नाम निर्दिष्ट किए बिना केवल git push या git pull का उपयोग कर सकें। Git स्वचालित रूप से upstream ब्रांच का उपयोग करेगा और आपको भविष्य के कमांड में ब्रांच का नाम स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता नहीं होगी। -
अधिक बदलाव जोड़ने के लिए। यदि आप बदलाव करना जारी रखना चाहते हैं और उन्हें GitHub पर पुश करना चाहते हैं, तो आपको केवल निम्नलिखित तीन कमांड का उपयोग करना होगा:
git add . git commit -m "type your commit message here" git pushटिप, आप
.gitignoreफाइल अपनाना चाह सकते हैं ताकि वे फाइलें जिन्हें आप ट्रैक नहीं करना चाहते, GitHub पर दिखाई न दें - जैसे कि वह नोट्स फाइल जिसे आप उसी फ़ोल्डर में स्टोर करते हैं लेकिन सार्वजनिक रिपॉजिटरी में उसकी कोई जगह नहीं है। आप.gitignoreफाइलों के टेम्पलेट्स .gitignore templates पर पा सकते हैं।
कमिट संदेश
एक शानदार Git कमिट विषय पंक्ति निम्नलिखित वाक्य को पूरा करती है: यदि लागू किया गया, तो यह कमिट <आपकी विषय पंक्ति यहां>
विषय के लिए वर्तमान काल का उपयोग करें: "change" न कि "changed" या "changes"।
जैसे विषय में, शरीर (वैकल्पिक) में भी वर्तमान काल का उपयोग करें। शरीर में बदलाव के लिए प्रेरणा शामिल होनी चाहिए और इसे पिछले व्यवहार के साथ तुलना करनी चाहिए। आप क्यों समझा रहे हैं, न कि कैसे।
✅ GitHub पर कुछ समय बिताएं। क्या आप एक वास्तव में शानदार कमिट संदेश ढूंढ सकते हैं? क्या आप एक बहुत ही न्यूनतम संदेश ढूंढ सकते हैं? आपके विचार में कमिट संदेश में कौन सी जानकारी सबसे महत्वपूर्ण और उपयोगी है?
कार्य: सहयोग करें
GitHub पर चीजें डालने का मुख्य कारण अन्य डेवलपर्स के साथ सहयोग करना संभव बनाना था।
अन्य लोगों के साथ प्रोजेक्ट पर काम करना
वीडियो देखें
अपने रिपॉजिटरी में, Insights > Community पर जाएं यह देखने के लिए कि आपका प्रोजेक्ट अनुशंसित सामुदायिक मानकों की तुलना में कैसा है।
यहां कुछ चीजें हैं जो आपके GitHub रिपो को बेहतर बना सकती हैं:
- विवरण। क्या आपने अपने प्रोजेक्ट के लिए विवरण जोड़ा है?
- README। क्या आपने README जोड़ा है? GitHub README लिखने के लिए मार्गदर्शन प्रदान करता है।
- योगदान दिशानिर्देश। क्या आपके प्रोजेक्ट में योगदान दिशानिर्देश हैं?
- आचार संहिता। एक आचार संहिता।
- लाइसेंस। शायद सबसे महत्वपूर्ण, एक लाइसेंस।
ये सभी संसाधन नए टीम सदस्यों को शामिल करने में लाभकारी होंगे। और ये आमतौर पर वे चीजें होती हैं जिन्हें नए योगदानकर्ता आपके कोड को देखने से पहले देखते हैं, यह पता लगाने के लिए कि क्या आपका प्रोजेक्ट उनके समय बिताने के लिए सही जगह है।
✅ README फाइलें, हालांकि उन्हें तैयार करने में समय लगता है, अक्सर व्यस्त मेंटेनर्स द्वारा उपेक्षित की जाती हैं। क्या आप किसी विशेष रूप से वर्णनात्मक README का उदाहरण ढूंढ सकते हैं? नोट: कुछ उपकरण अच्छे README बनाने में मदद करते हैं जिन्हें आप आज़माना चाह सकते हैं।
कार्य: कुछ कोड मर्ज करें
योगदान दस्तावेज़ लोगों को प्रोजेक्ट में योगदान करने में मदद करते हैं। यह बताता है कि आप किस प्रकार के योगदान की तलाश कर रहे हैं और प्रक्रिया कैसे काम करती है। योगदानकर्ताओं को आपके GitHub रिपो में योगदान करने में सक्षम होने के लिए एक श्रृंखला चरणों से गुजरना होगा:
- आपके रिपो को फोर्क करना। आप शायद चाहेंगे कि लोग आपके प्रोजेक्ट को फोर्क करें। फोर्क करने का मतलब है कि आपकी रिपॉजिटरी की एक प्रतिकृति उनके GitHub प्रोफ़ाइल पर बनाई जाए।
- क्लोन। वहां से वे प्रोजेक्ट को अपने स्थानीय मशीन पर क्लोन करेंगे।
- एक ब्रांच बनाएं। आप चाहेंगे कि वे अपने काम के लिए एक ब्रांच बनाएं।
- अपना बदलाव एक क्षेत्र पर केंद्रित करें। योगदानकर्ताओं से एक समय में एक चीज़ पर ध्यान केंद्रित करने के लिए कहें - इस तरह उनके काम को मर्ज करने की संभावना अधिक होती है। कल्पना करें कि उन्होंने एक बग फिक्स लिखा, एक नई सुविधा जोड़ी, और कई परीक्षण अपडेट किए - क्या होगा अगर आप 3 में से केवल 2 या 1 बदलाव लागू करना चाहते हैं या कर सकते हैं?
✅ ऐसी स्थिति की कल्पना करें जहां ब्रांच अच्छे कोड लिखने और शिप करने में विशेष रूप से महत्वपूर्ण हों। आप किन उपयोग मामलों के बारे में सोच सकते हैं?
नोट, वह बदलाव बनें जो आप दुनिया में देखना चाहते हैं, और अपने काम के लिए ब्रांच बनाएं। आपके द्वारा किए गए किसी भी कमिट उस ब्रांच पर किए जाएंगे जिस पर आप वर्तमान में "चेक आउट" हैं।
git statusका उपयोग करें यह देखने के लिए कि वह कौन सी ब्रांच है।
आइए एक योगदानकर्ता वर्कफ़्लो से गुजरें। मान लें कि योगदानकर्ता ने पहले ही रिपो को फोर्क और क्लोन कर लिया है ताकि उनके पास एक Git रिपो हो जिस पर वे अपने स्थानीय मशीन पर काम कर सकें:
-
एक ब्रांच बनाएं।
git branchकमांड का उपयोग करें एक ब्रांच बनाने के लिए जिसमें वे बदलाव करेंगे:git branch [branch-name] -
कार्य ब्रांच पर स्विच करें। निर्दिष्ट ब्रांच पर स्विच करें और
git switchका उपयोग करके कार्य निर्देशिका को अपडेट करें:git switch [branch-name] -
काम करें। इस बिंदु पर आप अपने बदलाव जोड़ना चाहते हैं। Git को इसके बारे में बताना न भूलें निम्नलिखित कमांड का उपयोग करके:
git add . git commit -m "my changes"सुनिश्चित करें कि आप अपने कमिट को एक अच्छा नाम दें, आपके लिए और उस रिपो के मेंटेनर के लिए जिस पर आप मदद कर रहे हैं।
-
अपने काम को
mainब्रांच के साथ मिलाएं। किसी बिंदु पर आप काम पूरा कर लेते हैं और आप अपने काम कोmainब्रांच के साथ मिलाना चाहते हैं। इस बीचmainब्रांच बदल सकती है इसलिए सुनिश्चित करें कि आप पहले इसे निम्नलिखित कमांड के साथ नवीनतम में अपडेट करें:git switch main git pullइस बिंदु पर आप यह सुनिश्चित करना चाहते हैं कि कोई भी संघर्ष, ऐसी स्थिति जहां Git आसानी से मिलाने में असमर्थ है, आपके कार्य ब्रांच में होता है। इसलिए निम्नलिखित कमांड चलाएं:
git switch [branch_name] git merge maingit merge mainकमांडmainसे सभी बदलावों को आपकी ब्रांच में लाएगा। उम्मीद है कि आप बस जारी रख सकते हैं। यदि नहीं, तो VS Code आपको बताएगा कि Git कंफ्यूज है और आप प्रभावित फाइलों को बदलकर यह बता सकते हैं कि कौन सी सामग्री सबसे सटीक है।किसी अन्य ब्रांच पर स्विच करने के लिए, आधुनिक
git switchकमांड का उपयोग करें:git switch [branch_name] -
अपना काम GitHub पर भेजें। अपना काम GitHub पर भेजने का मतलब दो चीजें हैं। अपनी ब्रांच को अपने रिपो पर पुश करना और फिर एक PR, Pull Request खोलना।
git push --set-upstream origin [branch-name]ऊपर दिया गया कमांड आपकी फोर्क की गई रिपो पर ब्रांच बनाता है।
-
PR खोलें। अगला कदम है PR खोलना। इसके लिए GitHub पर फोर्क किए गए रिपॉजिटरी पर जाएं। GitHub पर आपको एक संकेत मिलेगा जहां पूछा जाएगा कि क्या आप नया PR बनाना चाहते हैं। उस पर क्लिक करें और आप एक इंटरफ़ेस पर पहुंचेंगे जहां आप कमिट मैसेज का शीर्षक बदल सकते हैं और उसे एक उपयुक्त विवरण दे सकते हैं। अब जिस रिपॉजिटरी को आपने फोर्क किया है, उसका मेंटेनर इस PR को देखेगा और उम्मीद है कि वे इसे सराहेंगे और मर्ज करेंगे। अब आप एक योगदानकर्ता बन गए हैं, वाह! :)
-
सफाई करें। यह अच्छा अभ्यास माना जाता है कि PR सफलतापूर्वक मर्ज होने के बाद आप सफाई करें। आपको अपने लोकल ब्रांच और GitHub पर पुश किए गए ब्रांच दोनों को साफ करना चाहिए। पहले इसे लोकल से हटाने के लिए निम्नलिखित कमांड का उपयोग करें:
git branch -d [branch-name]इसके बाद GitHub पर फोर्क किए गए रिपॉजिटरी के पेज पर जाएं और उस रिमोट ब्रांच को हटा दें जिसे आपने अभी पुश किया है।
Pull request एक अजीब सा शब्द लगता है क्योंकि वास्तव में आप अपनी परियोजना में बदलाव पुश करना चाहते हैं। लेकिन मेंटेनर (परियोजना मालिक) या कोर टीम को आपके बदलावों पर विचार करना होता है, इससे पहले कि वे इसे परियोजना की "मुख्य" ब्रांच में मर्ज करें। इसलिए आप वास्तव में मेंटेनर से बदलाव का निर्णय मांग रहे हैं।
Pull request वह स्थान है जहां आप ब्रांच पर किए गए बदलावों की तुलना और चर्चा कर सकते हैं, जिसमें रिव्यू, टिप्पणियां, इंटीग्रेटेड टेस्ट और अन्य चीजें शामिल हैं। एक अच्छा Pull request लगभग उन्हीं नियमों का पालन करता है जो एक कमिट मैसेज करता है। आप इश्यू ट्रैकर में किसी इश्यू का संदर्भ जोड़ सकते हैं, उदाहरण के लिए जब आपका काम किसी इश्यू को ठीक करता है। इसे # के बाद इश्यू नंबर का उपयोग करके किया जाता है। उदाहरण: #97।
🤞उम्मीद है कि सभी चेक पास हो जाएं और परियोजना मालिक आपके बदलावों को परियोजना में मर्ज कर दें🤞
अपने वर्तमान लोकल वर्किंग ब्रांच को GitHub पर संबंधित रिमोट ब्रांच से सभी नए कमिट्स के साथ अपडेट करें:
git pull
ओपन सोर्स में योगदान कैसे करें
पहले, GitHub पर एक रिपॉजिटरी (या repo) खोजें जो आपको रुचिकर लगे और जिसमें आप बदलाव करना चाहते हैं। आप इसकी सामग्री को अपनी मशीन पर कॉपी करना चाहेंगे।
✅ 'शुरुआती-अनुकूल' रिपॉजिटरी खोजने का एक अच्छा तरीका है टैग 'good-first-issue' द्वारा खोज करना।
कोड कॉपी करने के कई तरीके हैं। एक तरीका है रिपॉजिटरी की सामग्री को "क्लोन" करना, HTTPS, SSH, या GitHub CLI (कमांड लाइन इंटरफ़ेस) का उपयोग करके।
अपना टर्मिनल खोलें और रिपॉजिटरी को इस तरह क्लोन करें:
git clone https://github.com/ProjectURL
परियोजना पर काम करने के लिए, सही फ़ोल्डर पर स्विच करें:
cd ProjectURL
आप पूरे प्रोजेक्ट को Codespaces, GitHub का एम्बेडेड कोड एडिटर / क्लाउड डेवलपमेंट एनवायरनमेंट, या GitHub Desktop का उपयोग करके भी खोल सकते हैं।
अंत में, आप कोड को ज़िप फ़ोल्डर में डाउनलोड कर सकते हैं।
GitHub के बारे में कुछ और रोचक बातें
आप GitHub पर किसी भी सार्वजनिक रिपॉजिटरी को स्टार, वॉच और/या "फोर्क" कर सकते हैं। आप अपने स्टार किए गए रिपॉजिटरी को टॉप-राइट ड्रॉप-डाउन मेनू में पा सकते हैं। यह कोड के लिए बुकमार्किंग जैसा है।
परियोजनाओं में एक इश्यू ट्रैकर होता है, ज्यादातर GitHub पर "Issues" टैब में जब तक अन्यथा संकेत न दिया गया हो, जहां लोग परियोजना से संबंधित मुद्दों पर चर्चा करते हैं। और Pull Requests टैब वह जगह है जहां लोग प्रगति में बदलावों पर चर्चा और समीक्षा करते हैं।
परियोजनाओं में चर्चा फोरम, मेलिंग लिस्ट, या चैट चैनल जैसे Slack, Discord या IRC में भी हो सकती है।
✅ अपने नए GitHub रिपॉजिटरी के चारों ओर एक नज़र डालें और कुछ चीजें आज़माएं, जैसे सेटिंग्स संपादित करना, अपने रिपॉजिटरी में जानकारी जोड़ना, और एक प्रोजेक्ट बनाना (जैसे कि Kanban बोर्ड)। आप बहुत कुछ कर सकते हैं!
🚀 चुनौती
एक दोस्त के साथ मिलकर एक-दूसरे के कोड पर काम करें। एक प्रोजेक्ट को सहयोगात्मक रूप से बनाएं, कोड फोर्क करें, ब्रांच बनाएं, और बदलाव मर्ज करें।
पोस्ट-लेक्चर क्विज़
समीक्षा और स्व-अध्ययन
ओपन सोर्स सॉफ़्टवेयर में योगदान करने के बारे में अधिक पढ़ें।
अभ्यास करें, अभ्यास करें, अभ्यास करें। GitHub के पास skills.github.com के माध्यम से शानदार लर्निंग पाथ उपलब्ध हैं:
आपको अधिक उन्नत पाठ्यक्रम भी मिलेंगे।
असाइनमेंट
GitHub पर पहला सप्ताह पाठ्यक्रम पूरा करें।
अस्वीकरण:
यह दस्तावेज़ AI अनुवाद सेवा Co-op Translator का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को आधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।



