GitHub पर पुश करना
आइए पुश करने की अवधारणा से शुरू करते हैं।
कमांड लाइन का उपयोग करके GitHub पर पुश करें
सीखने का सबसे अच्छा तरीका अभ्यास है, तो आइए कदम-दर-कदम प्रक्रिया देखते हैं।
1. नया रिपॉजिटरी बनाना
आपको नया रिपॉजिटरी बनाना है और प्लस आइकन पर क्लिक करना है।
सभी आवश्यक विवरण भरें, जैसे रिपॉजिटरी का नाम, विवरण, और इस बार रिपॉजिटरी को पब्लिक रखें क्योंकि यह मुफ़्त है।

2. अपना Git Bash खोलें
Git Bash को यहाँ से डाउनलोड किया जा सकता है। यह ऑपरेटिंग सिस्टम के साथ इंटरफ़ेस करने के लिए इस्तेमाल होने वाला एक शेल है, जो UNIX कमांड्स का अनुसरण करता है।
3. अपने डेस्कटॉप पर वर्तमान वर्किंग डायरेक्टरी की ओर लोकल प्रोजेक्ट बनाएं
pwd का मतलब 'print working directory' है, जो वर्तमान डायरेक्टरी प्रिंट करने के लिए उपयोग होता है।
अपने लोकल कंप्यूटर में किसी विशेष पथ पर जाने के लिए cd 'path_name' का उपयोग करें। cd कमांड का मतलब 'change directory' है, और यह आपके ऑपरेटिंग सिस्टम में वर्किंग डायरेक्टरी बदलने के लिए उपयोग होता है। अपनी फ़ाइल, 'path_name' यानी C:/Users/Dell/Downloads/FaceDetect-main तक पहुँचने के लिए यह दें। यह कमांड उस आवश्यक फ़ाइल की पहचान कर सकता है जिस पर आप काम करना चाहते हैं।
4. git रिपॉजिटरी इनिशियलाइज़ करें
रिपॉजिटरी इनिशियलाइज़ करने के लिए git init का उपयोग करें। यह एक नई खाली रिपॉजिटरी बनाता है और आपके प्रोजेक्ट के टॉप लेवल पर एक हिडन डायरेक्टरी .git बनती है, जो सभी रिविज़न जानकारी एक ही जगह रखती है।

5. नई लोकल रिपॉजिटरी में फ़ाइल जोड़ें
वर्तमान डायरेक्टरी की सभी फ़ाइलें स्टेज करने के लिए git add . का उपयोग करें। यह देखने के लिए कि कौन-सी फ़ाइलें स्टेज हो चुकी हैं और आपकी पहली कमिट के लिए तैयार हैं, git status का उपयोग करें।

6. कमिट संदेश लिखकर लोकल रिपॉजिटरी में स्टेज की गई फ़ाइलों को कमिट करें
आप git commit -m 'your message' चलाकर कमिट संदेश बना सकते हैं, जो स्टेज किए गए बदलावों को लोकल रिपॉजिटरी में रिकॉर्ड करता है। git commit में -m फ्लैग संदेश के लिए होता है, जिसमें पूर्ण विवरण शामिल होता है। संदेश 50 अक्षरों तक का आज्ञार्थक वाक्य होना चाहिए, जो बताता है कि "क्या बदला गया" और "यह बदलाव क्यों किया गया"।

7. GitHub से अपने रिमोट रिपॉजिटरी का URL कॉपी करें
HTTPS या URL आपके GitHub अकाउंट से कॉपी किया जाता है, जो रिमोट रिपॉजिटरी का स्थान है।

8. कॉपी किया गया URL, जो आपका रिमोट रिपॉजिटरी है, उसे जोड़ें जहाँ आपकी लोकल सामग्री पुश होगी
git remote add origin 'your_url_name'
ऊपर दिए गए कोड में, origin रिमोट का नाम है, और रिमोट URL "https://github.com/Olivia-Smithcoder100/FaceDetection.git" है। इस मामले में आप GitHub को रिमोट के रूप में देख सकते हैं, और GitHub रिमोट रिपॉजिटरी में जोड़ने के लिए URL प्रदान करता है।
9. अपनी लोकल रिपॉजिटरी का कोड GitHub पर पुश करें
git push -u origin main का उपयोग लोकल सामग्री को GitHub पर पुश करने के लिए किया जाता है।
इस कोड में, origin आपका डिफ़ॉल्ट रिमोट रिपॉजिटरी नाम है और -u फ्लैग upstream के लिए है, जो -set-upstream के बराबर है। main ब्रांच है। name.upstream वह रिपॉजिटरी है जिससे हमने प्रोजेक्ट क्लोन किया है।
अपने GitHub क्रेडेंशियल्स का उपयोग करके ऑथेंटिकेट करें। ध्यान दें कि GitHub अब Git ऑपरेशंस के लिए पासवर्ड ऑथेंटिकेशन सपोर्ट नहीं करता। आपको personal access token (PAT) या SSH key का उपयोग करना होगा।

10. GitHub पर होस्ट किए गए अपने रिपॉजिटरी में फ़ाइलें देखें
आखिरकार आप अपनी फ़ाइल GitHub पर होस्टेड देख सकते हैं।

GitHub Desktop का उपयोग करके GitHub पर पुश करें
GitHub Desktop किसी भी ऑपरेटिंग सिस्टम के लिए डाउनलोड के लिए उपलब्ध है, और यह GUI (Graphical User Interface) प्लेटफ़ॉर्म देता है जिससे आप अपनी लोकल रिपॉजिटरी से GitHub जैसी रिमोट रिपॉजिटरी पर लोकल सामग्री पुश कर सकते हैं।
आपको अपने ब्राउज़र में GitHub अकाउंट खोलना है और नया रिपॉजिटरी बनाने की प्रक्रिया, यानी चरण 1, "कमांड लाइन का उपयोग करके GitHub पर PUSH" में ऊपर वर्णित के समान ही है।
1. "Set up in a Desktop" पर क्लिक करें
आपको नीचे दिखाए अनुसार बटन पर क्लिक करना है, जहाँ एक पॉप-अप आता है, और आप "Open GitHub desktop" पर क्लिक करते हैं।

2. GitHub Desktop में क्लोन करना
आप नीचे दिखाए अनुसार Clone बटन पर क्लिक कर सकते हैं।
नया क्लोन बनने के बाद, आपके लोकल कंप्यूटर में एक फ़ोल्डर बनता है जहाँ हिडन डायरेक्टरी .git भी मौजूद होती है। 
3. अपने लोकल कंप्यूटर से सभी आवश्यक फ़ाइलें अपने कंप्यूटर पर क्लोन फ़ोल्डर में कॉपी करें
आपको सभी आवश्यक फ़ाइलें, इमेजेज, README फ़ाइलें आदि क्लोन फ़ोल्डर में कॉपी करनी हैं।

4. GitHub Desktop पर जाएँ और main पर कमिट करें
आप देख सकते हैं कि क्लोन फ़ोल्डर में जो फ़ाइलें जोड़ी गई हैं, वे GitHub Desktop में भी दिखती हैं। अंत में, अपना संदेश लिखें और Commit to main पर क्लिक करें।

5. GitHub Desktop में ब्रांच पब्लिश करें ताकि आपकी सभी फ़ाइलें GitHub पर अपलोड हो जाएँ
आप Publish Branch पर क्लिक करके अपनी सारी लोकल सामग्री GitHub पर पब्लिश कर सकते हैं।

सभी चरण पूरे करने के बाद आप अपना रिपॉजिटरी GitHub पर देख सकते हैं।
Git PULL रिक्वेस्ट
Pull request GitHub की एक सुविधा है जो आपको किसी रिपॉजिटरी में आपके द्वारा पुश किए गए बदलावों के बारे में प्रोजेक्ट मेंटेनर्स को सूचित करने देती है। यह git pull कमांड के समान नहीं है—pull request मुख्य ब्रांच में मर्ज होने से पहले बदलाव प्रस्तावित और समीक्षा करने का तरीका है।
किसी ब्रांच से pull करने का सरल कमांड है:
git pull 'remote_name' 'branch_name'
git pull कमांड, git fetch और git merge का संयोजन है—यह लोकल रिपॉजिटरी में हालिया कमिट्स फ़ेच करता है और फिर रिमोट ब्रांच को लोकल ब्रांच में मर्ज कर देता है। साथ ही, remote_name रिपॉजिटरी का नाम है और branch_name विशेष ब्रांच का नाम है।
आप PULL रिक्वेस्ट का उपयोग करने के दो अलग-अलग तरीकों को देखेंगे।
कमांड लाइन के जरिए PULL रिक्वेस्ट
नीचे दिए गए README फ़ाइलों में एक टाइपो है। README फ़ाइल में "contain" शब्द को गलत तरह से "containnns" लिखा गया है। इस रिपॉजिटरी के मालिक MNALO हैं, और Olivia सहयोगी है। वह त्रुटि को ठीक करेगी और एक PULL रिक्वेस्ट सबमिट करेगी। नीचे दिए गए विशेष उदाहरण के माध्यम से आप देखेंगे कि PULL रिक्वेस्ट कैसे बनाया जाता है।
ऊपर दी गई फ़ाइल में आप "containnns" शब्द में टाइपो देख सकते हैं।
1. रिपॉजिटरी को फ़ोर्क करें
"Fork" रिपॉजिटरी की एक कॉपी है। किसी रिपॉजिटरी को फ़ोर्क करने से आप मूल प्रोजेक्ट को प्रभावित किए बिना स्वतंत्र रूप से बदलावों के साथ प्रयोग कर सकते हैं। (स्रोत)

2. अपने कंप्यूटर में bash खोलें
आपको cd कमांड का उपयोग करके आवश्यक पथ या फ़ोल्डर पर जाना है, और ls कमांड का उपयोग करके सामग्री देखनी है, जो डायरेक्टरी में मौजूद सभी फ़ाइलों की सूची दिखाएगा। हमारे मामले में, आप देख सकते हैं कि 'README.md' मौजूद है।

3. नई ब्रांच बनाएँ
आप git checkout -b 'branch_name' का उपयोग करके नई ब्रांच बना सकते हैं। ऊपर दिए गए कोड में, -b फ्लैग नई ब्रांच बनाने के लिए उपयोग होता है, और branch_name ब्रांच को एक विशेष नाम देने के लिए। checkout के साथ, ब्रांच नई बनाई गई ब्रांच पर स्विच हो जाती है।

4. bash से vim का उपयोग करके या मूल README फ़ाइल में सीधे बदलाव करके परिवर्तन करें
आप README फ़ाइल में "containnns" शब्द को "contains" में बदल सकते हैं, और वर्तमान स्थिति के साथ किए गए बदलावों को निम्न कमांड से देखा जा सकता है।
5. फ़ाइल को जोड़ना और रिपॉजिटरी में कमिट करना
आपको निम्न कमांड्स का उपयोग करके add और commit करना है।

6. रिपॉजिटरी को GitHub पर पुश करें
आपको git push origin 'branch_name' से सामग्री पुश करनी है। ऊपर दिए गए कोड में, origin रिमोट रिपॉजिटरी है, और 'branch_name' वह आवश्यक ब्रांच है जहाँ आपको अपनी लोकल सामग्री अपलोड करनी है।

7. GitHub पर किसी विशेष ब्रांच के लिए PULL रिक्वेस्ट
आप GitHub में अपने रिपॉजिटरी पर जा सकते हैं और देख सकते हैं कि एक नई ब्रांच है।
अब आप चरण 8 पर जा सकते हैं, लेकिन upstream रिपॉजिटरी के साथ लोकल रिपॉजिटरी अपडेट करने की ज़रूरत है।
वैकल्पिक रूप से, आप कमांड लाइन में git pull-request कर सकते हैं और GitHub पर PULL रिक्वेस्ट पूरा कर सकते हैं, जहाँ यह आपको अपनी वर्तमान ब्रांच को रिमोट रिपॉजिटरी पर पुश करने के लिए प्रेरित करेगा।

8. Pull request खोलें
कार्रवाई पूरी करने के लिए आपको Create pull request बटन पर क्लिक करना है।

PULL रिक्वेस्ट मर्ज होने के बाद ब्रांच हटाना
आपको रिपॉजिटरी के मुख्य पेज पर जाना है और Pull requests पर क्लिक करना है।

आपको Closed पर क्लिक करना है ताकि आपने जो सभी PULL रिक्वेस्ट बनाए हैं, उनकी सूची देख सकें। अभी केवल एक है जिसे चुनना है। यह वही है जो आपकी उस ब्रांच से संबंधित है जिसे आप हटाना चाहते हैं।

अब आप कार्रवाई पूरी करने के लिए Delete branch पर क्लिक कर सकते हैं।

रिपॉजिटरी का मालिक सहयोगियों और अन्य लोगों द्वारा किए गए सभी कमिट्स, pull requests आदि देख सकता है। किसी द्वारा किए गए बदलाव महत्त्वपूर्ण हो सकते हैं—जैसे बग के त्वरित फ़िक्स, त्रुटियाँ आदि—और उन्हें प्रोजेक्ट में जोड़ा जाता है।

अब मालिक "Merge pull request" पर क्लिक करता/करती है। साथ ही वह नीचे दिए गए चरणों के जरिए "Confirm merge" पर क्लिक करेगा/करेगी।


README.md फ़ाइल में किया गया अंतिम बदलाव, जिसमें टाइपो सुधारा गया है, नीचे दिखाया गया है।

GitHub Desktop के जरिए PULL रिक्वेस्ट
"imp" फ़ाइल में एक टाइपो है जहाँ MNALO मालिक है और Olivia सहयोगी है। GitHub Desktop से PULL रिक्वेस्ट बनाने के लिए वे निम्न प्रक्रिया का पालन करते हैं।
1. क्लोन करें और डेस्कटॉप पर खोलें
प्रोजेक्ट क्लोन करें और "Open in Desktop" पर क्लिक करें।

2. नई ब्रांच बनाएँ
एक नई ब्रांच "fix-typo-imp" बनाई जाती है।

3. टेक्स्ट एडिटर से imp फ़ाइल में बदलाव करें
आप imp फ़ाइल की सामग्री बदल सकते हैं, टाइपो ठीक कर सकते हैं, और कुछ टेक्स्ट जोड़ सकते हैं।
4. बदलाव कमिट करें
एक कमिट संदेश लिखा जाता है और "Commit to fix-typo-imp" पर क्लिक किया जाता है।

5. ब्रांच पब्लिश करें
अब आप ब्रांच पब्लिश कर सकते हैं, जिससे कमिट GitHub पर पुश हो जाएगा।

6. PULL रिक्वेस्ट बनाएँ
अब आप Create pull request पर क्लिक करके PULL रिक्वेस्ट बना सकते हैं।
आप अब एक संदेश भी लिख सकते हैं और फिर से Create pull request पर क्लिक कर सकते हैं।

इसके बाद की प्रक्रिया "कमांड लाइन के जरिए PULL रिक्वेस्ट" में ऊपर बताई गई के समान है।
निष्कर्ष
अगले कदम के रूप में, रोज़मर्रा के कार्यों का अभ्यास जारी रखने के लिए हमारा GitHub Concepts कोर्स आज़माएँ। मैं हमारी GitHub Foundations Certification भी प्राप्त करूँगा/करूँगी, जिसे हमारे GitHub पार्टनरशिप के परिणामस्वरूप बनाया गया है। इसे पूरा करना आपके रिज़्यूमे पर शानदार लगता है, साथ ही कोर्स पूरा करने पर परीक्षा शुल्क पर बड़ा डिस्काउंट भी मिलता है। अंत में, मैं GitHub Actions देखूँगा/देखूँगी, क्योंकि वे CI/CD वर्कफ़्लो में तेजी से उपयोग हो रहे हैं, जो push/pull ऑपरेशंस से संबंधित हैं।
FAQs
Git push कमांड क्या है?
git push कमांड का उपयोग आपकी लोकल रिपॉजिटरी की सामग्री को GitHub जैसी रिमोट रिपॉजिटरी पर अपलोड करने के लिए किया जाता है। यह आपके बदलावों को दूसरों के साथ साझा करने या अपनी लोकल डेवलपमेंट को किसी पब्लिक या साझा रिपॉजिटरी के साथ सिंक करने के लिए आवश्यक है।
मैं Git pull request कैसे करूँ?
Git pull request सिर्फ़ एक सीधी Git कमांड नहीं है, बल्कि GitHub द्वारा प्रदान की गई एक सुविधा है, जो GitHub पर किसी रिपॉजिटरी में आपके द्वारा पुश किए गए बदलावों के बारे में प्रोजेक्ट मेंटेनर्स को सूचित करने के लिए होती है। आप इसे रिपॉजिटरी के अपने फ़ोर्क में बदलाव करके, उन बदलावों को पुश करके, और फिर GitHub के वेब इंटरफ़ेस के माध्यम से pull request सबमिट करके शुरू करते हैं।
git pull और git fetch में क्या अंतर है?
git pull दो काम करता है: यह किसी रिमोट ब्रांच से बदलाव फ़ेच करता है और फिर तुरंत उन्हें आपकी वर्तमान ब्रांच में मर्ज कर देता है। दूसरी ओर, git fetch केवल रिमोट रिपॉजिटरी से बदलाव फ़ेच करता है लेकिन उन्हें मर्ज नहीं करता, जिससे आप इन बदलावों की समीक्षा करने के बाद उन्हें अपनी ब्रांच में शामिल कर सकते हैं।
क्या मैं pull request मर्ज होने के बाद ब्रांच डिलीट कर सकता/सकती हूँ?
हाँ, pull request मर्ज होने के बाद, आप ब्रांच को सुरक्षित रूप से डिलीट कर सकते हैं क्योंकि उसने अपना उद्देश्य पूरा कर लिया है। ब्रांच डिलीट करना रिपॉजिटरी को साफ़-सुथरा और प्रबंधनीय बनाए रखने में मदद करता है।
Git ऑपरेशंस के लिए GitHub Desktop का उपयोग करने की पूर्वापेक्षाएँ क्या हैं?
GitHub Desktop का उपयोग करने के लिए, आपको अपने सिस्टम पर एप्लिकेशन डाउनलोड और इंस्टॉल करना होगा, GitHub अकाउंट होना चाहिए, और आदर्श रूप से GitHub के वर्कफ़्लो से कुछ परिचित होना चाहिए। यह एक उपयोगकर्ता-अनुकूल इंटरफ़ेस है, जो कई Git कमांड्स को क्लिक करने योग्य कार्रवाइयों में सरल बनाता है।
Git pull request के दौरान कॉनफ़्लिक्ट्स को कैसे सुलझाएँ?
कॉनफ़्लिक्ट तब होते हैं जब एक ब्रांच के बदलाव दूसरी ब्रांच के उन बदलावों से ओवरलैप करते हैं जिन्हें स्वतः मर्ज नहीं किया जा सकता। इन्हें हल करने के लिए, आपको फ़ाइलों को मैन्युअल रूप से एडिट करना होगा ताकि अंतिम सामग्री क्या हो, यह तय किया जा सके, बदलाव अपडेट करें, और फिर मर्ज प्रक्रिया पूरी करें। GitHub और GitHub Desktop के भीतर मौजूद टूल्स इन कॉनफ़्लिक्ट्स की पहचान और समाधान में मदद कर सकते हैं।
GitHub ने डिफ़ॉल्ट ब्रांच का नाम master से main में क्यों बदला?
GitHub ने समावेशी भाषा प्रथाओं के अनुरूप होने के लिए डिफ़ॉल्ट ब्रांच नाम बदला। "master" शब्द कुछ लोगों को संभावित रूप से असंवेदनशील लगा, और इसके स्थान पर "main" को एक तटस्थ और वर्णनात्मक विकल्प के रूप में चुना गया।


इस ट्यूटोरियल में, मैं आपको Git push और pull कमांड्स का उपयोग करने की प्रक्रिया, साथ ही GitHub Desktop और कमांड लाइन दोनों के माध्यम से pull requests बनाने का तरीका बताऊंगा। यह गाइड उन सभी के लिए उपयोगी है जो कोड रिपॉजिटरीज़ मैनेज करते हैं।
आप इस ट्यूटोरियल की सभी सामग्रियों के साथ चलते-चलते सीख सकते हैं, भले ही आप शुरुआती हों। हालांकि, अगर आप Git में नए हैं, तो हमारे शुरुआती लोगों के लिए GitHub और Git ट्यूटोरियल को देखें और हमारा Git सेटअप गाइड इस्तेमाल करके अपना वातावरण सेटअप करें।
Git Push और Git Pull क्या हैं?
ऊँचे स्तर पर, इनके बीच अंतर इस प्रकार हैं:
git pushआपके लोकल कमिट्स को GitHub जैसे रिमोट रिपॉजिटरी पर अपलोड करता है, जबकिgit pullकिसी रिमोट रिपॉजिटरी से बदलाव डाउनलोड करता है और उन्हें आपकी लोकल ब्रांच में मर्ज कर देता है। दोनों कमांड्स का उपयोग कमांड लाइन या GitHub Desktop के जरिए किया जा सकता है।नोट: Pull request GitHub की एक सुविधा है, जो मर्ज करने से पहले बदलाव प्रस्तावित और समीक्षा करने के लिए होती है — यह
git pullकमांड के समान नहीं है।लोकल ब्रांच से रिमोट रिपॉजिटरी पर कमिट्स पुश करने के लिए यह चलाएँ:
git push <remote_name> <branch_name>एक और नोट: GitHub अब पासवर्ड ऑथेंटिकेशन को सपोर्ट नहीं करता। इसके बजाय SSH keys या personal access tokens का उपयोग करें।