37 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 रिपो आपके मशीन पर अच्छा है, लेकिन किसी बिंदु पर आप अपनी फाइलों का बैकअप कहीं और रखना चाहेंगे और अन्य लोगों को अपने रिपो पर काम करने के लिए आमंत्रित करना चाहेंगे। ऐसा करने के लिए
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 पर भेजता है।
-
अधिक बदलाव जोड़ने के लिए। यदि आप बदलाव करना जारी रखना चाहते हैं और उन्हें GitHub पर पुश करना चाहते हैं, तो आपको केवल निम्नलिखित तीन कमांड का उपयोग करना होगा:
git add . git commit -m "type your commit message here" git push
टिप: आप
.gitignore
फाइल को अपनाना चाह सकते हैं ताकि उन फाइलों को GitHub पर दिखने से रोका जा सके जिन्हें आप ट्रैक नहीं करना चाहते - जैसे कि वह नोट्स फाइल जिसे आप उसी फ़ोल्डर में स्टोर करते हैं लेकिन जिसका सार्वजनिक रिपॉजिटरी में कोई स्थान नहीं है। आप.gitignore
फाइलों के टेम्पलेट्स यहां पा सकते हैं।
कमिट संदेश
एक शानदार Git कमिट सब्जेक्ट लाइन निम्नलिखित वाक्य को पूरा करती है:
यदि लागू किया गया, तो यह कमिट <आपकी सब्जेक्ट लाइन यहां> करेगा।
सब्जेक्ट के लिए, वर्तमान काल और आदेशात्मक स्वर का उपयोग करें: "बदलें" न कि "बदला" या "बदलता है"।
जैसे कि सब्जेक्ट में, बॉडी (वैकल्पिक) में भी वर्तमान काल और आदेशात्मक स्वर का उपयोग करें। बॉडी में बदलाव के लिए प्रेरणा और इसे पिछले व्यवहार से कैसे अलग करता है, यह शामिल होना चाहिए। आप क्यों
समझा रहे हैं, न कि कैसे
।
✅ GitHub पर कुछ समय बिताएं। क्या आप एक शानदार कमिट संदेश ढूंढ सकते हैं? क्या आप एक बहुत ही न्यूनतम संदेश ढूंढ सकते हैं? आपके अनुसार कमिट संदेश में कौन सी जानकारी सबसे महत्वपूर्ण और उपयोगी है?
कार्य: सहयोग करें
GitHub पर चीजें डालने का मुख्य कारण अन्य डेवलपर्स के साथ सहयोग करना संभव बनाना था।
दूसरों के साथ प्रोजेक्ट्स पर काम करना
वीडियो देखें
अपने रिपॉजिटरी में, Insights > Community
पर नेविगेट करें यह देखने के लिए कि आपका प्रोजेक्ट अनुशंसित सामुदायिक मानकों की तुलना में कैसा है।
यहां कुछ चीजें हैं जो आपके GitHub रिपो को बेहतर बना सकती हैं:
- विवरण। क्या आपने अपने प्रोजेक्ट के लिए विवरण जोड़ा?
- README। क्या आपने README जोड़ा? GitHub 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 main
यह
main
से सभी बदलावों को आपकी ब्रांच में लाएगा और उम्मीद है कि आप बस जारी रख सकते हैं। यदि नहीं, तो VS Code आपको बताएगा कि Git कहां उलझन में है और आप प्रभावित फाइलों को बदल सकते हैं ताकि यह स्पष्ट हो सके कि कौन सी सामग्री सबसे सटीक है। -
अपने काम को GitHub पर भेजें। अपने काम को GitHub पर भेजने का मतलब दो चीजें हैं। अपनी ब्रांच को अपने रिपो पर पुश करना और फिर एक PR (Pull Request) खोलना।
git push --set-upstream origin [branch-name]
उपरोक्त कमांड आपकी फोर्क की गई रिपो पर ब्रांच बनाता है।
-
PR खोलें। अगला, आप एक PR खोलना चाहते हैं। आप ऐसा GitHub पर फोर्क की गई रिपो पर नेविगेट करके करते हैं। आप GitHub पर एक संकेत देखेंगे जहां यह पूछता है कि क्या आप एक नया PR बनाना चाहते हैं, आप उस पर क्लिक करते हैं और आपको एक इंटरफ़ेस पर ले जाया जाता है जहां आप कमिट संदेश शीर्षक बदल सकते हैं, इसे एक अधिक उपयुक्त विवरण दे सकते हैं। अब आपने जिस रिपो को फोर्क किया है उसके मेंटेनर इस PR को देखेंगे और उम्मीद है वे आपकी सराहना करेंगे और आपके PR को मर्ज करेंगे। आप अब एक योगदानकर्ता हैं, बधाई हो :)
-
साफ-सफाई करें। PR को सफलतापूर्वक मर्ज करने के बाद साफ-सफाई करना अच्छा अभ्यास माना जाता है। आप अपनी स्थानीय ब्रांच और उस ब्रांच को साफ करना चाहते हैं जिसे आपने GitHub पर पुश किया था। पहले इसे निम्नलिखित कमांड के साथ स्थानीय रूप से हटा दें:
git branch -d [branch-name]
सुनिश्चित करें कि आप फोर्क की गई रिपो के GitHub पेज पर जाएं और उस रिमोट ब्रांच को हटा दें जिसे आपने अभी पुश किया था।
Pull request
एक अजीब सा शब्द लगता है क्योंकि असल में आप अपनी बदलावों को प्रोजेक्ट में "पुश" करना चाहते हैं। लेकिन प्रोजेक्ट के मालिक (maintainer) या कोर टीम को आपके बदलावों पर विचार करना होता है, इससे पहले कि वे इसे प्रोजेक्ट की "main" ब्रांच में मर्ज करें। इसलिए आप वास्तव में एक बदलाव का निर्णय मांग रहे हैं।
एक pull request वह जगह है जहां आप ब्रांच पर किए गए बदलावों की तुलना और चर्चा कर सकते हैं, जिसमें रिव्यू, टिप्पणियां, इंटीग्रेटेड टेस्ट और अन्य चीजें शामिल होती हैं। एक अच्छा pull request लगभग उन्हीं नियमों का पालन करता है जो एक commit message के लिए होते हैं। आप अपने काम को किसी issue से जोड़ सकते हैं, जैसे कि जब आपका काम किसी issue को ठीक करता है। इसे #
के बाद issue नंबर लिखकर किया जाता है। उदाहरण के लिए #97
।
🤞उम्मीद है कि सभी चेक पास हो जाएं और प्रोजेक्ट मालिक आपके बदलावों को प्रोजेक्ट में मर्ज कर दें🤞
अपने वर्तमान लोकल वर्किंग ब्रांच को GitHub पर संबंधित रिमोट ब्रांच से सभी नए commits के साथ अपडेट करें:
git pull
ओपन सोर्स में योगदान कैसे करें
सबसे पहले, GitHub पर एक ऐसा रिपॉजिटरी (या repo) खोजें जो आपके लिए रुचिकर हो और जिसमें आप बदलाव करना चाहते हों। आप इसकी सामग्री को अपनी मशीन पर कॉपी करना चाहेंगे।
✅ 'शुरुआती-अनुकूल' रिपॉजिटरी खोजने का एक अच्छा तरीका है टैग 'good-first-issue' द्वारा सर्च करना।
कोड कॉपी करने के कई तरीके हैं। एक तरीका है रिपॉजिटरी की सामग्री को "क्लोन" करना, HTTPS, SSH, या GitHub CLI (Command Line Interface) का उपयोग करके।
अपना टर्मिनल खोलें और रिपॉजिटरी को इस तरह क्लोन करें:
git clone https://github.com/ProjectURL
प्रोजेक्ट पर काम करने के लिए सही फोल्डर पर स्विच करें:
cd ProjectURL
आप पूरे प्रोजेक्ट को Codespaces, GitHub का एम्बेडेड कोड एडिटर / क्लाउड डेवलपमेंट एनवायरनमेंट, या GitHub Desktop का उपयोग करके भी खोल सकते हैं।
अंत में, आप कोड को ज़िप फोल्डर में डाउनलोड कर सकते हैं।
GitHub के बारे में कुछ और रोचक बातें
आप GitHub पर किसी भी सार्वजनिक रिपॉजिटरी को स्टार, वॉच और/या "fork" कर सकते हैं। आप अपने स्टार किए गए रिपॉजिटरी को टॉप-राइट ड्रॉप-डाउन मेनू में देख सकते हैं। यह कोड के लिए बुकमार्किंग जैसा है।
प्रोजेक्ट्स में एक issue tracker होता है, जो ज्यादातर GitHub पर "Issues" टैब में होता है जब तक कि अन्यथा न बताया जाए, जहां लोग प्रोजेक्ट से संबंधित मुद्दों पर चर्चा करते हैं। और Pull Requests टैब वह जगह है जहां लोग प्रगति में बदलावों पर चर्चा और समीक्षा करते हैं।
प्रोजेक्ट्स में चर्चा के लिए फोरम, मेलिंग लिस्ट, या चैट चैनल जैसे Slack, Discord या IRC भी हो सकते हैं।
✅ अपने नए GitHub रिपॉजिटरी के चारों ओर देखें और कुछ चीजें आज़माएं, जैसे सेटिंग्स को एडिट करना, अपने रिपॉजिटरी में जानकारी जोड़ना, और एक प्रोजेक्ट बनाना (जैसे Kanban बोर्ड)। आप बहुत कुछ कर सकते हैं!
🚀 चुनौती
एक दोस्त के साथ मिलकर एक-दूसरे के कोड पर काम करें। एक प्रोजेक्ट को सहयोगात्मक रूप से बनाएं, कोड को fork करें, ब्रांच बनाएं, और बदलावों को मर्ज करें।
पोस्ट-लेक्चर क्विज़
समीक्षा और स्व-अध्ययन
ओपन सोर्स सॉफ़्टवेयर में योगदान करने के बारे में अधिक पढ़ें।
अभ्यास करें, अभ्यास करें, अभ्यास करें। GitHub के पास skills.github.com पर उपलब्ध शानदार लर्निंग पाथ हैं:
आपको अधिक उन्नत पाठ्यक्रम भी मिलेंगे।
असाइनमेंट
GitHub पर पहला सप्ताह का कोर्स पूरा करें।
अस्वीकरण:
यह दस्तावेज़ AI अनुवाद सेवा Co-op Translator का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता सुनिश्चित करने का प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को प्रामाणिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं।