advanced git commands
यह ट्यूटोरियल Git Stash, Git Reset, Git Cherry Pick, Git Bisect और GitHub को Jira के साथ एकीकृत करने के तरीके के बारे में उपयोगी Git Commands की व्याख्या करता है:
इस श्रृंखला में हमारे पिछले ट्यूटोरियल में, हमने GitHub की अधिकांश विशेषताओं को देखा है।
इस ट्यूटोरियल में, हम निम्नलिखित देखेंगे:
- विमोचन करना
- एटलसियन जीरा के साथ एकीकरण
- डेवलपर्स के लिए सबसे अधिक इस्तेमाल किया जाने वाला Git कमांड
- गिट स्टैश
- गिट चेरी उठाओ
- Git Reset
- Git Bisect
=> यहाँ GitHub गाइड पर एक नज़र रखना।
गुणवत्ता विश्लेषक साक्षात्कार सवाल और जवाब
आप क्या सीखेंगे:
विमोचन करना
GitHub में रिलीज़ का उपयोग आपके सॉफ़्टवेयर को बंडल करने के लिए किया जाता है, ग्राहकों और लोगों को समान उपयोग करने के लिए रिलीज़ नोट्स और बायनेरिज़ (WAR, EAR, JAR फ़ाइलें) जोड़ें।
एक रिलीज बनाने के लिए, रिपॉजिटरी के मुख्य पृष्ठ पर जाएं और क्लिक करें विज्ञप्ति के तहत टैब विषयों का प्रबंधन करें।
पर क्लिक करें एक नई रिलीज़ बनाएँ।
एक टैग और एक रिलीज शीर्षक प्रदान करें। बायनेरिज़ को रिलीज़ में भी जोड़ा जाता है। एक बार क्लिक करें प्रकाशन प्रकाशित करें।
अब स्रोत कोड और बायनेरिज़ के साथ रिलीज़ तैयार है।
जीतू के साथ गीताबह एकता
ट्रेसबिलिटी का एक महत्वपूर्ण पहलू जीथहब में कमिट्स के साथ जीरा मुद्दे को संदर्भित करना है। GitHub को जीरा के साथ न केवल मुद्दे को संदर्भित करने के लिए, बल्कि जीरा के भीतर से शाखाओं और पुल अनुरोध बनाने में मदद करने के लिए भी एकीकृत किया जा सकता है।
इसलिए आमतौर पर, जब डेवलपर कार्य या बग पर काम करना शुरू करता है, तो उसके द्वारा एक शाखा बनाई जाती है। विकास पोस्ट करें या बग को हल करने के लिए जीरा से मुख्य में विलय करने के लिए एक पुल अनुरोध बनाया जा सकता है गुरुजी डाली। फिर डेवलपर द्वारा बनाई गई शाखा को हटाया जा सकता है।
एकीकरण स्थापित करने के लिए, हमने एक प्लगइन का उपयोग किया है जीरा के लिए Git इंटीग्रेशन। यह एक कमर्शियल प्लगइन है। प्लगइन से डाउनलोड किया जा सकता है यहाँ
से जीरा में प्लगइन स्थापित करें व्यवस्थापक -> ऐड-ऑन।
एक बार प्लगइन स्थापित हो जाने पर जाना आवेदन -> गिट रिपोजिटरी और GitHub से कनेक्ट करें।
GitHub उपयोगकर्ता नाम और पासवर्ड दर्ज करें। क्लिक जुडिये ।
उपयोगकर्ता खाते के लिए उल्लिखित रिपॉजिटरी प्रदर्शित की जाएगी। पर क्लिक करें आयात भंडार एकीकरण सेटअप खत्म करने के लिए।
जीतू मुद्दे के साथ GitHub कमिट
जैसा कि नीचे दिखाया गया है, प्रतिबद्ध संदेश का एक हिस्सा दर्ज करें। पर क्लिक करें प्रतिबद्ध बदलाव ।
उदाहरण 1: नीचे का एक उदाहरण है स्मार्ट कमिट जो डेवलपर्स को जीरा मुद्दों पर प्रतिबद्ध संदेश से कार्रवाई करने की अनुमति देता है। ऐसा ही एक आदेश है #टिप्पणी जीरा मुद्दे पर टिप्पणी जोड़ने वाली अंक कुंजी के साथ नीचे दिखाया गया है।
टिप्पणियाँ अनुभाग अपडेट किया गया।
उदाहरण 2: एक उपयोगकर्ता को असाइन करें और 4 घंटे के रूप में बिताए गए समय को अपडेट करें।
उपयोग # राज तथा #समय कमिट मैसेज में स्मार्ट कमिट कमांड।
दोनों क्रियाएं पूरी हो चुकी हैं।
उदाहरण 3: मुद्दे की स्थिति को इसमें बदलें चालू ।
एक शाखा बनाएँ
जैसे ही कार्य और बग डेवलपर्स को सौंपे जाते हैं, उन्हें विकास पर काम करना शुरू करना होगा। इसके लिए वे उस मुद्दे के लिए एक शाखा बनाते हैं जिस पर वे काम कर रहे हैं, विकास गतिविधियों को करते हैं और मास्टर शाखा में विलय करने के लिए एक पुल अनुरोध उठाते हैं।
नीचे दिए गए क्लिक पर जीरा मुद्दे में शाखा बनाएँ।
पर क्लिक करें शाखा बनाएँ।
GitHub में, उपर्युक्त ब्रांच में फाइल में बदलाव करें और उसी के अनुसार कमिट करें।
जैसा कि विकास पूरा हो गया है तब उपयोगकर्ता जीरा से पुल अनुरोध कर सकता है।
समस्या के निचले भाग पर क्लिक करें पुल अनुरोध बनाएँ।
पर क्लिक करें सृजन करना। पुल अनुरोध को ओपन के रूप में दिखाया जाएगा।
अगला कदम GitHub में पुल अनुरोध को मर्ज करना है।
स्थिति जीरा के अनुसार अपडेट की जाती है।
डेवलपर्स के लिए उन्नत जीआईटी कमांड
इस अंतिम खंड में, हम डेवलपर्स के लिए कुछ सामान्य रूप से उपयोग किए जाने वाले Git आदेशों को देखेंगे। GitHub से कोई लेना देना नहीं है, लेकिन GitHub में परिवर्तन करने से पहले वे डेवलपर्स की सहायता करेंगे।
गिट स्टैश
जब आप किसी नई सुविधा या एन्हांसमेंट पर काम कर रहे होते हैं, तो ज्यादातर प्रोजेक्ट परिदृश्यों में, अचानक एक ऐसे दोष पर काम करने की आवश्यकता होती है, जो रिपोर्ट किया गया हो और जो शो स्टॉपर हो। जैसा कि आप अपने नए काम में हैं और इसे पूरा नहीं किया है और जो बदलाव किए गए हैं उनका आधा करने का कोई मतलब नहीं है।
इसलिए, अस्थायी रूप से आधे किए गए कार्य को निलंबित करना या सहेजना बेहतर है, बग पर काम करें और नई सुविधा या वृद्धि पर काम करने के लिए वापस आएं। Git stash इसका एक समाधान प्रदान करता है। आप आसानी से परिवर्तन करने के संदर्भ को आसानी से बदल सकते हैं।
उदाहरण 1 :मान लें कि आप अपने द्वारा असाइन किए गए कार्य पर काम कर रहे हैं और जब आप स्थिति को देखते हैं, तो यह दर्शाता है कि यह अब तक अनट्रैक है।
अचानक एक उच्च प्राथमिकता वाला बग आपको सौंपा गया है। इस प्रकार, हमें वर्तमान में काम किए जा रहे काम को अस्थायी रूप से सहेजने या छिपाने की आवश्यकता है।
निम्न आदेश चलाएँ।
git stash save “Message”
इस समय कार्यशील निर्देशिका साफ है। कोई भी नया कमिट किया जा सकता है और अगर बग हैं तो आप शाखा को उस पर काम करने के लिए स्विच कर सकते हैं आदि।
जब आप उन परिवर्तनों को फिर से लागू करना चाहते हैं जहां आपने छोड़ा था, तो कमांड का उपयोग करें।
git stash पॉप
उपरोक्त कमांड सूची से स्टैश को हटा देगा और अंतिम सहेजे गए राज्य को लागू करेगा।
आप भी उपयोग कर सकते हैं:
गिट स्टैश लागू होते हैं
उपरोक्त कमांड स्टाॅश में बदलाव रखेगा और उन्हें नहीं हटाएगा।
अब परिवर्तन फिर से लागू होते हैं और आप बदलाव कर सकते हैं।
उदाहरण 2: अपने परिवर्तनों को बदलें, शाखा को बदलें और परिवर्तनों को मर्ज करें।
Html फ़ाइल में परिवर्तन करें गुरुजी शाखा और छिपाने की जगह परिवर्तन।
इसके बाद स्विच करना है बग शाखा, परिवर्तन करें और परिवर्तन करें।
git चेकआउट -b बग
Html फ़ाइल में परिवर्तन करें।
git कमिटमेंट -m 'फिक्स्ड ईमेल इश्यू'
पर वापस जाएँ गुरुजी शाखा और फिर से टकराव से बदल जाता है।
अब से विलय बग को शाखा गुरुजी डाली। मर्ज के बाद परिवर्तन करें।
उदाहरण 3: मल्टीपल स्टैश के साथ काम करना।
स्थानीय रेपो में, 2 एचटीएमएल फाइलें हैं। इसलिए, यह संभव है कि कई डेवलपर्स कई फाइलों पर काम करेंगे और बदलावों को ठीक करने के लिए जरूरी अनुरोधों पर काम करने के लिए परिवर्तनों को रोक सकते हैं।
Developer 1 hello.html पर काम करता है और Developer 2 index.html पर काम करता है।
डेवलपर १
Stash सूची में अब 1 प्रविष्टि है।
डेवलपर २
स्टैश सूची में अब 2 प्रविष्टियां हैं। नवीनतम स्टैश पहले स्टैक में है जो स्टैश @ {0} है। अब दोनों डेवलपर्स किसी भी अन्य को तत्काल कर सकते हैं या किसी अन्य शाखा पर काम कर सकते हैं और फिर वापस आ सकते हैं गुरुजी शाखा और परिवर्तन परिवर्तनों को लागू करें।
नवीनतम स्टेश लगाने के लिए, आप बस चला सकते हैं
git stash पॉप
स्टैक में एक विशिष्ट स्लैश लागू करने के लिए निम्नलिखित कमांड चलाएँ।
git stash पॉप स्टैश @ {1}
दूसरा स्टैश लागू करें जो है स्टैश @ {1}
इसी तरह, दूसरे स्टेश को लागू किया जा सकता है।
गिट चेरी उठाओ
आज, डेवलपर्स कई शाखाओं जैसे फ़ीचर, एन्हांसमेंट, बग आदि पर काम करते हैं।
ऐसी स्थितियाँ हैं जहाँ केवल कुछ विशिष्ट कमिटों को चुनने की आवश्यकता है और पूरी शाखा को दूसरी शाखा में विलय करने की नहीं। इसे चेरी पिक कहा जाता है। यह प्रक्रिया आपको अन्य शाखाओं से किसी भी Git कमिटमेंट को मनमाने ढंग से लेने की अनुमति देती है और इसे कार्यशील पेड़ के वर्तमान HEAD में जोड़ देती है।
उदाहरण 1:
स्थानीय गिट रिपॉजिटरी में, हमारे पास निम्नलिखित 6 फाइलें हैं।
एक फ़ाइल हटा दी जाती है, कहते हैं file5.txt।
परिवर्तन करें।
अब लॉग देखें। File5.txt हटा दिया गया है।
इसलिए, हम चेरी को चुनना चाहते हैं, जहां हमने file5.txt जोड़ा है। हमें file5.tx की प्रतिबद्ध आईडी खोजने और कमांड चलाने की आवश्यकता है।
git चेरी-पिक
इस स्थिति में, जब file5.txt को जोड़ा गया था, की प्रतिबद्ध आईडी है a2f0124
File5.txt अब बहाल हो गया है। हमने चेरी-कमिट किया।
उदाहरण 2:
चलो बस संशोधित है file6.txt और में परिवर्तन करें गुरुजी डाली।
दूसरी पंक्ति में देखें file6.txt जहां ईमेल सही ढंग से निर्दिष्ट नहीं है।
बग शाखा बनाएं और समस्या को ठीक करें। एक ही समय में file5.txt को भी संशोधित करें ताकि हम बग ब्रांच में कई कमिट करें लेकिन केवल File6.txt में किए गए कमिटमेंट को चेरी-पिक करेंगे।
File6 को संशोधित किया गया बग डाली।
इसलिए, कुल मिलाकर, हमने इसमें बदलाव किए हैं file5 और file6 बग शाखा में।
चलो अब वापस स्विच करते हैं गुरुजी ब्रांच और चेरी-फ़ाइल के लिए किए गए कमिट को ही चुनें।
जैसा कि आप देख सकते हैं कि विलय के बजाय बग में शाखा गुरुजी शाखा, हमारे पास केवल चेरी-उठाया गया केवल एक विशिष्ट प्रतिबद्ध है और मास्टर शाखा में लागू किया गया है।
Git Reset
Git रीसेट स्थानीय परिवर्तनों को पूर्ववत करने के लिए एक शक्तिशाली कमांड है। तो, अन-स्टेज करने के लिए, सभी चरणबद्ध फाइलें इस कमांड का उपयोग किया जाता है।
उदाहरण
एक फ़ाइल को संशोधित करें और इसे मंचन में जोड़ें। आदेश का उपयोग करके रीसेट करें जैसा कि चरणबद्ध परिवर्तन अस्थिर होने पर दिखाया गया है।
के पैरामीटर्स गिट रीसेट आज्ञा।
-मुलायम: यह पैरामीटर HEAD को अन्य कमिट में इंगित करेगा। सभी फाइलें मूल HEAD और प्रतिबद्ध के बीच बदल दी जाएंगी। वर्किंग डायरेक्टरी बरकरार है।
वर्तमान हेड लोकेशन को देखें।
आइए इतिहास में 5 वापसी करते हैं।
परिवर्तनों को फिर से कमिट करें।
-मिला हुआ: विकल्प नरम पैरामीटर के समान है। आमतौर पर, जब कुछ खराब होते हैं, तो आप उन्हें हटा देते हैं और बाद में ठीक कर देते हैं और इसे वापस कर देते हैं। इसलिए अनिवार्य रूप से, हमें इंडेक्स का उपयोग करने के लिए जोड़ना होगा जोड़ देना और फिर कमिट काम के पेड़ में परिवर्तन छोड़ दिया जाता है।
आइए इतिहास में 2 वापस जाएं और देखें कि फाइलें अनट्रैक हैं।
अब फ़ाइलों को स्टेजिंग में जोड़ें और बदलाव करें।
-कठिन: यह पैरामीटर उस बिंदु पर आराम करेगा जहां एक विशेष फ़ाइल मौजूद थी। कार्यशील पेड़ में परिवर्तन उपलब्ध नहीं होंगे।
उपर्युक्त लॉग को देखने से उस बिंदु पर वापस जाने की अनुमति मिलती है जहां केवल फ़ाइल 1 प्रतिबद्ध था यानी अंतिम प्रविष्टि।
का उपयोग करते हुए git रीसेट -हार्ड
Git Bisect
सटीक कमिटमेंट खोजें जिसने कोड को तोड़ दिया (हम सभी मनुष्य हैं आखिर)। अक्सर आवेदन के परीक्षण के दौरान, हम अपने परीक्षकों से सुनते हैं कि एक बग है या फीचर टूट गया है और आप डेवलपर के रूप में कहेंगे कि इसने पिछले सप्ताह काम किया था। तो, क्या हुआ और यह बग क्यों दिखाई दिया?
कभी-कभी दूसरे कोड में बदलाव से आपकी सुविधा प्रभावित हो सकती है। आपको उस इतिहास से गुजरने में समय बिताना होगा जहां बहुत सारे कमिट हैं जो समय लेने वाली हैं और यह ट्रैक करने के लिए कठिन है कि कोड को तोड़ने का कारण बना।
Git Bisect बग को पेश किए जाने पर सटीक कमिट खोजने के लिए कमांड है। Git bisect के साथ आपको दो कमिट्स चुनने की जरूरत है, एक अच्छा और एक खराब। दोनों आवागमन के बीच लगभग आधे रास्ते की जाँच की जाएगी। जब तक बग या कोड को तोड़ने का कारण नहीं मिल जाता, तब तक आप प्रत्येक कमिट को खराब या अच्छा मानते हैं।
उदाहरण:
- एक नया स्थानीय गिट रिपॉजिटरी बनाएँ और एक फ़ाइल बनाएँ, जिसे index.html कहा जाता है
- फ़ाइल की प्रारंभिक सामग्री जैसा दिखाया गया है।
- मंचन में जोड़ें और भंडार में प्रतिबद्ध करें।
- दिखाए गए अनुसार कमिट्स का इतिहास बनाएं, ताकि हम अच्छे और बुरे कमिट्स के बीच चयन कर सकें। अब जैसा कि प्रारंभिक प्रतिबद्ध किया जाता है, जैसा कि दिखाया गया है और उसी के अनुसार अन्य परिवर्तन करें। कुल मिलाकर, हम 7 कमिट करेंगे।
दूसरा परिवर्तन
तीसरा बदलाव
चौथा परिवर्तन
पाँचवाँ बदलाव
छठा परिवर्तन
सातवां बदलाव
यहां रुकने दो। इसलिए, हमारे पास सात कमिट हैं।
यदि आप Html पृष्ठ को देखते हैं, तो 'सभी 4 घटनाओं ...' के बाद की पंक्तियाँ गलत हैं और इस प्रकार प्रलेखन सही नहीं है। इसलिए, हमें उस प्रतिबद्ध को खोजने की आवश्यकता है जहां त्रुटि पेश की गई थी ताकि हम उस प्रतिबद्ध के लिए अपने हेड को आराम कर सकें।
लॉग पर नजर डालते हैं और पता करते हैं खराब तथा अच्छा है।
नवीनतम कमिट सही नहीं है, इसलिए यह एक खराब प्रतिबद्धता हो सकती है। तीसरी कमेटी के बाद कमिटमेंट पेश किया गया था, इसलिए हमारे पास यह हो सकता है तीसरा बदलाव अच्छी प्रतिबद्धता के रूप में।
बाइसेक्टिंग की प्रक्रिया शुरू होती है गिट बिसात शुरू और के साथ समाप्त होता है git bisect रीसेट करें।
git bisect खराब // जैसा कि नवीनतम प्रतिबद्ध खराब है। प्रतिबद्ध आईडी प्रदान करने की आवश्यकता नहीं है।
git bisect अच्छा है
अब आप देख सकते हैं कि HEAD अब बुरे और अच्छे कमिट के आधे के बीच में है।
Index.html की सामग्री को देखें और देखें कि क्या कोई अच्छी प्रतिबद्धता है। यदि नहीं, तो त्रुटि अभी भी नहीं मिली है।
वास्तव में नहीं है कि त्रुटि अभी भी मौजूद है। अंतिम पंक्ति गलत है। तो, हम ‘चलाते हैं git bisect bad ' अभी भी एक खराब प्रतिबद्धता है और वर्तमान सामग्री स्वीकार्य नहीं है।
उपरोक्त सामग्री सही और स्वीकार्य है।
‘गिट लॉगऑनलाइन’ और is गिट बायसेक्ट गुड ’चलाएं।
ऐसा पाँचवाँ बदलाव पहला बुरा कमिट था और वास्तव में ऐसा था। त्रुटि की पहचान की जाती है।
वर्तमान सामग्री अंतिम दस्तावेज में होनी चाहिए।
जैसा कि खराब प्रतिबद्ध की पहचान की जाती है, आप डेवलपर को उन परिवर्तनों को सही करने के लिए सूचित कर सकते हैं जो सिर को चौथे बदलाव के लिए रीसेट कर सकते हैं जो अंतिम अच्छी प्रतिबद्धता थी।
Daud ' git bisect रीसेट करें 'प्रक्रिया को समाप्त करने के लिए।
निष्कर्ष
इस GitHub हैंड-ऑन प्राइमर में, हमने उन सभी को कवर करने की कोशिश की है जो एक डेवलपर को संस्करण नियंत्रण और ट्रैकिंग बिंदु से देखने की आवश्यकता होगी।
GitHub श्रृंखला के पहले तीन ट्यूटोरियल में हमने संस्करण नियंत्रण गतिविधियों के बारे में सीखा है, रिपॉजिटरी, पुल अनुरोध, शाखाएं, कोड समीक्षाएं, संगठन और टीम बनाना, एक रिपॉजिटरी, लेबल, मील के पत्थर, मुद्दे, प्रोजेक्ट बोर्ड, विकी, रिलीज़, एकीकरण का निर्माण करना डेवलपर्स के लिए जीरा और कुछ आमतौर पर इस्तेमाल किए जाने वाले Git कमांड के साथ।
हम वास्तव में आशा करते हैं कि सभी डेवलपर्स GitHub और Git कमांड को अपनी परियोजनाओं में इस हैंड-ऑन अप्रोच को ढूंढेंगे।
=> ईज़ी गिटहब ट्रेनिंग सीरीज़ के माध्यम से पढ़ें।
अनुशंसित पाठ
- गीताबला जीरा एकीकरण ट्यूटोरियल
- यूनिक्स कमांड्स: बेसिक और एडवांस्ड यूनिक्स कमांड्स विद एग्जाम्पल्स
- ग्रहण के उपयोग से गाइटहब के साथ सेलेनियम एकीकरण
- JIRA और SVN इंटीग्रेशन ट्यूटोरियल
- गिट बनाम गिटहब: उदाहरणों के साथ अंतरों का अन्वेषण करें
- ककड़ी सेलेनियम ट्यूटोरियल: ककड़ी जावा सेलेनियम वेबड्राइवर एकीकरण
- डेवलपर्स के लिए GitHub ट्यूटोरियल | GitHub का उपयोग कैसे करें
- यूनिक्स पाइप्स ट्यूटोरियल: यूनिक्स प्रोग्रामिंग में पाइप्स