github tutorial developers how use github
यह GitHub ट्यूटोरियल बताता है कि GitHub क्या है और रिपोजिटरी, ब्रांच और पुल रिक्वेस्ट कैसे बनाएं। इसमें शाखा सुरक्षा नियम और संघर्ष संकल्प शामिल हैं:
GitHub क्या है?
GitHub एक क्लाउड सेवा है जो डेवलपर्स को अपने सोर्स कोड को स्टोर करने और प्रबंधित करने में मदद करती है और स्रोत कोड के सभी परिवर्तनों को नियंत्रित करती है।
सरल शब्दों में, गिटहब डेवलपर्स के लिए है, जिसमें वे परियोजना का प्रबंधन कर सकते हैं, स्रोत कोड की मेजबानी कर सकते हैं और उनकी समीक्षा भी कर सकते हैं। हम इस श्रृंखला में इन सभी का पता लगाएंगे।
इस GitHub श्रृंखला में ट्यूटोरियल की सूची:
ट्यूटोरियल # 1: डेवलपर्स के लिए GitHub ट्यूटोरियल | GitHub का उपयोग कैसे करें (यह ट्यूटोरियल)
ट्यूटोरियल # 2: गिटहब प्रोजेक्ट्स, टीम्स, फोर्क एंड विकी फॉर डॉक्यूमेंटिंग प्रोजेक्ट्स
ट्यूटोरियल # 3: उन्नत Git कमांड्स और GitHub इंटीग्रेशन ट्यूटोरियल
ट्यूटोरियल # 4: GitHub REST API Tutorial - GitHub में REST API सपोर्ट
ट्यूटोरियल # 5: GitHub Desktop Tutorial - अपने डेस्कटॉप से GitHub के साथ सहयोग करें
ट्यूटोरियल # 6: TortoiseGit ट्यूटोरियल - संस्करण नियंत्रण के लिए TortoiseGit का उपयोग कैसे करें
आप क्या सीखेंगे:
Git क्या है?
Git एक ओपन सोर्स वर्जन कंट्रोल सिस्टम है, जहां पूरा सोर्स कोड डेवलपर की मशीन पर उपलब्ध होता है। Git एक क्लाइंट और डिस्ट्रिब्यूटेड वर्जन कंट्रोल सिस्टम (DVCS) भी है जहां आप ब्रांचिंग और मर्जिंग कर सकते हैं।
GitHub के साथ शुरुआत करना
GitHub के साथ आरंभ करने के लिए, हम निम्न चरणों का पालन करेंगे।
- परियोजनाओं को व्यवस्थित करने के लिए एक रिपॉजिटरी बनाएं।
- एक शाखा बनाएँ
- फ़ाइल में बदलाव करें और कमिट करें।
- सामग्री मर्ज करने के लिए एक पुल अनुरोध बनाएँ।
- शाखा की रक्षा करें
श्रृंखला के दूसरे भाग में, हम गीथहब की अन्य विशेषताओं जैसे कि संगठन बनाना, टीम, मुद्दे, मील के पत्थर, कांटे, विज्ञप्ति और विकी को देखेंगे।
एक GitHub रिपोजिटरी बनाएँ
GitHub रिपॉजिटरी में प्रोजेक्ट की कलाकृतियाँ हैं जैसे स्रोत कोड, दस्तावेज़, चित्र, आदि। हम उपरोक्त सभी चरणों को करने के लिए डेमो रिपॉजिटरी का निर्माण और उपयोग करेंगे।
Github.com पर लॉगिन करें और एक नया रिपॉजिटरी बनाएं । पर क्लिक करें नवीन व बटन।
दिखाए गए अनुसार नीचे रेपो विवरण जोड़ें और क्लिक करें रिपॉजिटरी बनाएं । निजी या सार्वजनिक तक पहुंच सेट करें। इसे सार्वजनिक रूप से सेट करना बेहतर है क्योंकि कुछ सुविधाएं इस पहुंच पर निर्भर हैं।
नोट: वह उपयोगकर्ता जो रिपॉजिटरी बनाता है, GitHub रिपोजिटरी का मालिक है।
रिपोजिटरी README फाइल के साथ बनाई गई है।
GitHub रिपोजिटरी में सहयोगी जोड़े
हम चाहेंगे कि टीम इस भंडार पर काम करे। इसके लिए, हमें सहयोगियों को रिपॉजिटरी पर काम करने के लिए आमंत्रित करना होगा। सहयोगियों को जोड़ने के लिए, रिपॉजिटरी के मुख्य पृष्ठ पर जाएं और पर क्लिक करें समायोजन आइकन।
पर क्लिक करें सहयोगियों बाएं फलक पर और सहयोगी सहयोगी जोड़ें जिनके पास Github खाता है। एक आमंत्रण भेजा जाएगा और सहयोगियों को निमंत्रण स्वीकार करने की आवश्यकता होगी।
सहयोगी नीचे दिए गए अनुसार जोड़े गए हैं। बाद में, इस ट्यूटोरियल में, हम देखेंगे कि कोड मर्ज करने के लिए बनाए गए पुल अनुरोध के लिए समीक्षक के रूप में सहयोगी कैसे जोड़े जाएंगे।
एक बुनियादी सी प्रदर्शन न आना
README फाइल को खोलें और एक बेसिक कमिटमेंट करें। पर क्लिक करें आइकन संपादित करें फ़ाइल को संशोधित करना शुरू करने के लिए।
फ़ाइल को संशोधित करें, एक टिप्पणी जोड़ें और पर क्लिक करें कमिट ।
फ़ाइल Github रिपॉजिटरी के लिए प्रतिबद्ध (सहेजे गए परिवर्तन) है।
रिपॉजिटरी के अंदर फ़ोल्डर और फ़ाइलों को बनाने के लिए कुछ संचालन को देखा जाएगा।
फ़ोल्डर और फ़ाइल बनाने के लिए: पर क्लिक करें नई फ़ाइल बनाएँ रिपोजिटरी स्तर पर बटन। नीचे दी गई निर्देशिका का नाम और / और फ़ाइल का नाम टाइप करें।
पर क्लिक करें कमिट तल पर। दिखाए गए अनुसार फ़ोल्डर और फ़ाइल बनाई जाती है। इस प्रकार, फ़ाइलों और फ़ोल्डरों पर बनाया जाता है गुरुजी शाखा जो मुख्य एकीकरण शाखा है और ज्यादातर जहां सॉफ्टवेयर रिलीज का निर्माण किया जा सकता है।
डेवलपर्स आम तौर पर एक अलग शाखा पर उन्हें सौंपे गए कार्य पर काम करते हैं और मास्टर शाखा में परिवर्तन को मर्ज करते हैं। उदाहरण के लिए, शाखाएँ सुविधा विकास के लिए बनाई जा सकती हैं या बग को हल करने या संवर्द्धन आदि पर काम कर सकती हैं। इस प्रकार, एक शाखा बनाकर कार्य को अन्य शाखाओं को परेशान किए बिना अलग किया जाता है।
अगले चरण में, हम यह देख सकते हैं कि शाखाएँ कैसे बनाई जा सकती हैं और अनुरोधों की समीक्षा करने और कोड को मास्टर शाखा में विलय करने के लिए अनुरोधों को खींचा जा सकता है।
एक फ़ाइल चल रहा है
किसी फ़ाइल को दूसरे फ़ोल्डर में ले जाने के लिए निम्न चरण करें। उदाहरण के लिए, फ़ाइल के नियमों को स्थानांतरित करने के लिए। doc फ़ोल्डर में जाएं। फ़ाइल पर क्लिक करें।
फ़ाइल को संपादित करने के लिए आइकन पर क्लिक करें।
रास्ता जोड़ो डॉक्टर / फ़ाइल से पहले नियमों । पर क्लिक करें प्रतिबद्ध बदलाव।
पथ अब अद्यतन किया गया है।
एक GitHub शाखा बनाना
रिपॉजिटरी के मुख्य पृष्ठ पर जाएं और ए बनाएँ फ़ीचर शाखा के रूप में दिखाया गया है। पर क्लिक करें शाखा बनाएँ।
हम अब अंदर हैं फ़ीचर डाली। फाइलें वही हैं। अब हम फ़ाइलों में कुछ बदलाव करेंगे फ़ीचर शाखा में परिवर्तन की समीक्षा करने और कोड को मर्ज करने के लिए एक पुल अनुरोध बनाएँ गुरुजी डाली।
फ़ीचर शाखा में फ़ाइलों में परिवर्तन करें।
Src फ़ोल्डर में जावा फ़ाइल खोलें और कुछ कोड जोड़ें और परिवर्तन करें।
एक GitHub पुल अनुरोध बनाएँ
पिछले अनुभाग में, हमने एक शाखा बनाई फ़ीचर और फ़ाइल में कुछ बदलाव किए हैं। बदलाव नहीं हैं गुरुजी डाली। इसके लिए, हमें एक पुल अनुरोध बनाने की आवश्यकता है जिसके द्वारा उपयोगकर्ता कुछ परिवर्तनों की समीक्षा करने और विलय करने का प्रस्ताव कर रहा है गुरुजी डाली।
पुल अनुरोध बनाने से स्रोत और लक्ष्य शाखा के बीच अंतर दिखाई देगा और यदि कोई हो तो संघर्ष को हल करने की आवश्यकता होगी।
पर क्लिक करें तुलना करें और अनुरोध करें भंडार के मुख्य पृष्ठ पर।
आप देख सकते हैं कि दोनों शाखाओं में बदलाव को मिला दिया जा सकता है। पर क्लिक करें पुल अनुरोध बनाएँ।
पर क्लिक करें मर्ज पुल अनुरोध तथा पुष्टि करें मर्ज को पूरा करने के लिए।
परिवर्तन सफलतापूर्वक मर्ज किए जाते हैं गुरुजी डाली। हमारा पहला पुल अनुरोध सफलतापूर्वक पूरा हो गया है।
समीक्षकों को पुल अनुरोधों और कोड की समीक्षा के साथ असाइन करें
Github में CODEOWNERS फ़ाइल का उपयोग करने की एक अच्छी सुविधा है, जिसमें हम रिपॉजिटरी में स्रोत कोड के लिए जिम्मेदार लोगों का चयन कर सकते हैं। रिपोजिटरी मालिक इस फाइल को बना सकते हैं और फाइल में परिभाषित किसी भी उपयोगकर्ता को पुल अनुरोध निर्माण के दौरान समीक्षा के लिए डिफ़ॉल्ट रूप से अनुरोध किया जाता है।
इस सुविधा का उपयोग करने के लिए, आपको GitHub Pro संस्करण का उपयोग करना होगा या रिपॉजिटरी को सार्वजनिक करना होगा।
रिपॉजिटरी की जड़ में, इस फाइल को निम्न प्रारूप में बनाएं और फाइल को कमिट करें।
* @username या @orgname या @teamname
* रेपो में मुख्य रूप से सभी फाइलों का मतलब है। आप * .java या * .js आदि जैसे विशिष्ट एक्सटेंशन भी निर्दिष्ट कर सकते हैं। फ़ाइल में परिभाषित उपयोगकर्ता को स्वचालित रूप से समीक्षा के लिए अनुरोध भेजा जाएगा। CODEOWNERS फ़ाइल परिभाषित होने के साथ, समीक्षकों को मैन्युअल रूप से जोड़ने की कोई आवश्यकता नहीं है और उन फ़ाइलों को चुनने के लिए थोड़ा अधिक लचीलापन है।
में वापस फ़ीचर शाखा जावा फ़ाइल में एक छोटा सा बदलाव करती है और एक पुल अनुरोध बनाएँ। पुल अनुरोध स्क्रीन में दाईं ओर एक समीक्षक असाइन करें। पर क्लिक करें पुल अनुरोध बनाएँ।
आप उपरोक्त स्क्रीन में देख सकते हैं कि समीक्षकों को मैन्युअल रूप से असाइन किया जा सकता है लेकिन समीक्षकों को CODEOWNERS फ़ाइल में परिभाषित किया गया है जो स्वचालित रूप से कोड परिवर्तनों की समीक्षा करने का अनुरोध प्राप्त करेंगे।
वैसे भी, अभी के लिए, चलो लॉग इन करें समीक्षक के रूप में और परिवर्तनों को अनुमोदित करता है। परिवर्तनों को अनुमोदित करने के लिए उपयोगकर्ता vniranjan2512 के रूप में लॉग इन करें।
के तहत परिवर्तनों को स्वीकृत / अस्वीकार करने का अनुरोध है पुल अनुरोध।
पुल अनुरोध पर क्लिक करें और अपनी समीक्षा जोड़ें।
आप पर क्लिक कर सकते हैं + स्क्रीन पर आने वाले कोड जोड़ा / संशोधित / हटाए गए की पंक्ति के लिए समीक्षा टिप्पणियां जोड़ें और जोड़ें।
पर क्लिक करें एक समीक्षा शुरू करें।
पर क्लिक करें अपनी समीक्षा समाप्त करें। दिखाए गए अनुसार और समीक्षा जमा करें ।
मूल उपयोगकर्ता के रूप में वापस जिसने एक पुल अनुरोध उठाया, आप एक टिप्पणी जोड़ सकते हैं और बातचीत को हल या बंद कर सकते हैं।
मर्ज पुल अनुरोध अब पूरा किया जा सकता है।
परिवर्तनों को सफलतापूर्वक मर्ज कर दिया जाता है गुरुजी शाखा समीक्षा और पुल अनुरोध को मर्ज करती है।
इसलिए, इस स्तर पर संक्षेप में, हमने देखा है कि डेवलपर्स इस पर काम करते हैं फ़ीचर शाखा और फिर परिवर्तनों को मर्ज करने के लिए एक पुल अनुरोध करें गुरुजी डाली। ऊपर एक परिदृश्य था जहां संघर्ष नहीं थे। अगले अनुभाग में, हम मैन्युअल रूप से संघर्षों को हल करने के तरीके देखेंगे यदि फाइलें कई शाखाओं में बदली जाती हैं।
संघर्षों का समाधान
यह संभव है कि कई शाखाओं में एक ही फाइल को बदल दिया जाएगा। इस मामले में, टकराव होगा और उठाए गए हल अनुरोध के माध्यम से हल करना होगा।
उदाहरण के लिए, दोनों में जावा फ़ाइल में परिवर्तन करें गुरुजी तथा फ़ीचर शाखाएँ और एक पुल अनुरोध बढ़ाएँ।
दिखाया गया पुल अनुरोध संदेश यह है कि परिवर्तन स्वचालित रूप से मर्ज नहीं किए जा सकते। इसलिए संघर्षों को हल करना होगा। पुल अनुरोध बनाने के लिए आगे बढ़ें।
पुल रिक्वेस्ट उठाए जाने के बाद, टकरावों को क्लिक करके हल करना होगा विवादों को सुलझाओ बटन।
उन चिह्नों को हटा दें जो अनिवार्य रूप से संघर्षों को मैन्युअल रूप से हल कर रहे हैं और क्लिक करें सुलझा हुआ चिन्हित करना तथा मर्ज करना।
चिह्नों को हटाने के बाद फ़ाइल का अंतिम दृश्य।
मर्ज पुल अनुरोध को पूरा किया जा सकता है। गुरुजी तथा फ़ीचर शाखाएँ अब समान होंगी।
आप अभी भी उपरोक्त स्क्रीन में देख सकते हैं कि समीक्षा का अनुरोध किया गया है लेकिन अनिवार्य नहीं है। अगले भाग में, हम शाखा सुरक्षा नियमों के बारे में देखेंगे जिसमें रिपॉजिटरी का मालिक समीक्षा के लिए अनिवार्य रूप से अनुरोध कर सकता है और उसकी सुरक्षा भी कर सकता है। गुरुजी सीधे इसे करने से शाखा लेकिन केवल एक पुल अनुरोध के माध्यम से।
शाखा सुरक्षा नियम
पिछले खंडों में, हमने जीथब पुल अनुरोधों के बारे में देखा और उन समीक्षाओं के लिए भी अनुरोध किया जो अनिवार्य या वैकल्पिक नहीं थे। विशिष्ट परियोजना परिदृश्य कोड में, समीक्षा एक चाहिए और विकास प्रक्रिया का एक हिस्सा है।
आइए देखें कि इसे कैसे लागू किया जाए।
Github.com में यह सुविधा केवल सार्वजनिक रिपॉजिटरी के लिए या Github प्रो संस्करण का उपयोग करके सेट की जा सकती है। रिपोजिटरी के मुख्य पृष्ठ पर जाएं समायोजन और पर क्लिक करें शाखाओं बाईं ओर श्रेणी।
पर क्लिक करें नियम जोड़ें के नीचे शाखा सुरक्षा नियम। नियम ने कोड मालिकों से अनिवार्य पुल अनुरोध समीक्षा के लिए विलय करने से पहले अनुरोधों को जोड़ा गुरुजी डाली।
यह भी सुनिश्चित करेगा कि मास्टर शाखा संरक्षित है और इस शाखा पर कोई प्रत्यक्ष आवागमन नहीं किया जा सकता है और केवल गहन समीक्षा के बाद ही पुल अनुरोध के माध्यम से प्रतिबद्ध किया जा सकता है। यह सेटिंग रिपॉजिटरी मालिक द्वारा सेट की गई है।
एक महान सुविधा वास्तव में !!!
पर क्लिक करें सृजन करना एक बार किया। इस परिदृश्य का परीक्षण करने के लिए, किसी फ़ाइल में परिवर्तन करें फ़ीचर शाखा और एक पुल अनुरोध बनाएँ।
निम्न स्क्रीन से पता चलता है कि कोड मालिकों द्वारा एक समीक्षा अनिवार्य है।
कोड मालिकों से समीक्षा पोस्ट करें पुल अनुरोध को मर्ज किया जा सकता है।
रिपॉजिटरी के सहयोगी के रूप में, यदि आप किसी भी फाइल में परिवर्तन करते हैं, तो संरक्षित शाखाओं के बनाए नियमों के कारण, आप सीधे मास्टर ब्रांच में कमिट नहीं कर पाएंगे, लेकिन एक शाखा बनाने के बाद केवल अनुरोध के रूप में दिखाया गया है। नीचे।
दूसरे उपयोगकर्ता खाते में एक रिपॉजिटरी स्थानांतरित करना
आम तौर पर, एक व्यक्तिगत उपयोगकर्ता भंडार में एक ही मालिक होता है और अन्य सभी सहयोगी होते हैं। इसलिए, इस अर्थ में कि आपके पास उपयोगकर्ता खाते के भंडार में कई मालिक नहीं हो सकते हैं। लेकिन स्वामित्व को किसी अन्य उपयोगकर्ता खाते में स्थानांतरित किया जा सकता है। जब मूल रिपॉजिटरी का मालिक नया उपयोगकर्ता खाता रिपॉजिटरी में स्वचालित रूप से सहयोगी बन जाता है।
नया मालिक तब विरूपण साक्ष्य, मुद्दों, पुल अनुरोधों, परियोजनाओं, रिलीज, और सेटिंग्स को प्रशासित करना शुरू कर सकता है।
आम तौर पर जब स्थानीय रिपॉजिटरी में it git क्लोन ’या push git पुश’ जैसे कमांड किए जाते हैं, तो कमांड नए रिपॉजिटरी में रीडायरेक्ट हो जाएंगे। लेकिन जब आप 'git रिमोट -v' कमांड चलाते हैं, तब भी यह मूल रिपॉजिटरी URL दिखाएगा। नए दूरस्थ URL को बदलने के भ्रम की स्थिति से बचने के लिए set git रिमोट सेट-यूआरएल ’कमांड का उपयोग करके रिपॉजिटरी का स्थानांतरण करें।
एक रिपॉजिटरी को स्थानांतरित करने के लिए, रिपॉजिटरी के सेटिंग्स टैब पर जाएं और विकल्प के तहत? डेंजर जोन पर क्लिक करें स्थानांतरण
रिपॉजिटरी नाम और नया उपयोगकर्ता खाता दर्ज करें, जिनके लिए स्वामित्व स्थानांतरित किया जाना चाहिए।
मैं समझता हूं पर क्लिक करें, इस भंडार को स्थानांतरित करें
आपको एक संदेश देखना चाहिए कि रिपॉजिटरी नए मालिक को स्थानांतरित हो गई है।
स्थानांतरण को अनुमोदित करने के लिए मूल भंडार मालिक को एक मेल भेजा जाएगा। स्थानांतरण को मंजूरी मिलने के बाद भंडार को नए मालिक को स्थानांतरित कर दिया जाएगा और मूल भंडार मालिक को सहयोगी के रूप में जोड़ा जाएगा।
अब नए रिपॉजिटरी URL को मशीन में सेट करें जहाँ पुराने रिपॉजिटरी को क्लोन किया गया था। निम्नलिखित आदेशों को उन सभी मशीनों में सेट करना होगा जहां पुरानी रिपॉजिटरी को क्लोन किया गया था।
सभी पुल अनुरोधों, मुद्दों, विकी को स्थानांतरित कर दिया जाएगा। अंक असाइनमेंट बरकरार रहेंगे।
कुछ उपयोगी Git Commands
जीआईटी क्लाइंट को आपके लिनक्स या विंडोज मशीन पर स्थापित करने के बाद कुछ बुनियादी गिट कमांड आपके स्थानीय मशीन पर शुरू में कॉन्फ़िगर किए जाने हैं। GitHub पर मौजूद रिपॉजिटरी के कनेक्शन के बिना, डेवलपर्स स्थानीय रूप से काम करते हैं, GitHub पर उपलब्ध सोर्स कोड की पूरी कॉपी पर और इसके साथ सिंक्रोनाइज़ करते हैं।
सबसे पहले, यह सुनिश्चित करने के लिए अपना उपयोगकर्ता नाम और ईमेल पता सेट करें कि सभी संचार इस जानकारी का उपयोग करते हैं।
git config -global user.name 'उपयोगकर्ता नाम'
git config -global user.email 'myemail@myemail.com'
जब आपको कमिट्स के दौरान एक संदेश जोड़ने की आवश्यकता होती है, तो आप उसी के लिए आवश्यक संपादक को भी कॉन्फ़िगर कर सकते हैं।
Android के लिए सबसे अच्छा जासूस अनुप्रयोग
git config -global core.editor नोटपैड
सभी कॉन्फ़िगरेशन मान सेट की एक सूची प्राप्त करें।
git config -list
कभी-कभी संगठनों में इंटरनेट से जुड़ने के लिए प्रॉक्सी सर्वर होते हैं। उस स्थिति में, आपको GitHub पर सभी रिपॉजिटरी तक पहुंचने के लिए एक प्रॉक्सी सर्वर और पोर्ट नंबर निर्दिष्ट करना होगा।
git config -global http.proxyhttp: // उपयोगकर्ता नाम: पासवर्ड @ प्रॉक्सीवर: पोर्ट
क्लोन या रिपोजिटरी की एक स्थानीय प्रतिलिपि बनाएँ। GitHub में रिपॉजिटरी का क्लोन URL प्राप्त करें और git कमांड चलाएँ।
निष्कर्ष
इस ट्यूटोरियल में, हमने देखा है कि कैसे एक डेवलपर GitHub पर काम करना शुरू कर सकता है, एक GitHub रिपॉजिटरी बनाने से, ब्रांच, पुल रिक्वेस्ट, एक ब्रांच की सुरक्षा और कुछ बेसिक Git कमांड से।
हमारे आगामी ट्यूटोरियल में, हम मुख्य रूप से GitHub की अन्य विशेषताओं को देखेंगे कि कैसे संगठनों, टीमों को बनाने के लिए, एक रिपॉजिटरी बनाने के लिए, मुद्दों को बनाने, मील के पत्थर और पुल अनुरोधों के साथ जुड़ने, विकी और उनके उपयोग और कुछ अन्य उन्नत कमांड्स जो उपयोगी होंगे डेवलपर्स के लिए।
अनुशंसित पाठ
- उदाहरणों के साथ जावा परावर्तन ट्यूटोरियल
- गिट बनाम गिटहब: उदाहरणों के साथ अंतरों का अन्वेषण करें
- उदाहरणों के साथ अजगर डेटाइम ट्यूटोरियल
- ग्रहण के उपयोग से गाइटहब के साथ सेलेनियम एकीकरण
- फाइल में स्टोर रिक्वेस्ट और रिस्पांस डेटा के लिए एक त्वरित साबुन गाइड - साबुनापी ट्यूटोरियल # 15
- Bugzilla Tutorial: दोष प्रबंधन उपकरण हाथों पर ट्यूटोरियल
- 20+ MongoDB शुरुआती के लिए ट्यूटोरियल: नि: शुल्क MongoDB कोर्स
- उदाहरण के साथ MongoDB शेयरिंग ट्यूटोरियल