मेरे लेख का तार्किक विस्तार है । Git के बारे में लेख में, मैंने बताया कि कमांड लाइन पर Git के साथ कैसे काम किया जाए। आज मैं आपको दिखाऊंगा कि IntelliJ IDEA में यह सब कैसे करना है। एक डेवलपर के रूप में अपनी यात्रा की शुरुआत में, मैंने कमांड लाइन का इस्तेमाल किया और सोचा कि मुझे इसके लिए जीयूआई की जरूरत नहीं है। आखिरकार, सब कुछ स्पष्ट था जैसा कि था... लेकिन यह ठीक उस समय तक था जब मैंने IntelliJ IDEA में Git का उपयोग करना शुरू किया था... शुरू से ही, मैं यह कहना चाहता हूं कि मैं अपने व्यक्तिगत अनुभव का वर्णन कर रहा हूं। IntelliJ IDEA में दी गई किसी भी समस्या को हल करने के कई तरीके हैं। यदि आप लेख में जो वर्णन करेंगे, उससे बेहतर तरीका जानते हैं, तो इसे टिप्पणियों में लिखें और हम इस पर चर्चा करेंगे।
आवश्यक इनपुट:
- गिट के बारे में मेरा लेख पढ़ें, साथ चलें और समझें । इससे यह सुनिश्चित करने में मदद मिलेगी कि सब कुछ सेट अप है और जाने के लिए तैयार है।
- IntelliJ आईडिया स्थापित करें।
- पूर्ण महारत हासिल करने के लिए एक घंटे का व्यक्तिगत समय आवंटित करें।
परियोजना को स्थानीय रूप से क्लोन करें
यहां दो विकल्प हैं:- यदि आपके पास पहले से ही एक GitHub खाता है और बाद में कुछ पुश करना चाहते हैं, तो प्रोजेक्ट को फोर्क करना और अपनी कॉपी को क्लोन करना बेहतर होगा।
- मेरे रिपॉजिटरी को क्लोन करें और सब कुछ स्थानीय रूप से सर्वर पर पूरी चीज को धक्का देने की क्षमता के बिना करें। आखिरकार, यह मेरा भंडार है :)
-
प्रोजेक्ट का पता कॉपी करें:
![स्वर्ग में बना एक मेल: Git और IntelliJ IDEA - 2]()
-
IntelliJ IDEA खोलें और "संस्करण नियंत्रण से प्राप्त करें" चुनें:
![स्वर्ग में बना एक मैच: Git और IntelliJ IDEA - 3]()
-
प्रोजेक्ट का पता कॉपी और पेस्ट करें:
![स्वर्ग में बना एक मेल: Git और IntelliJ IDEA - 4]()
-
आपको IntelliJ IDEA प्रोजेक्ट बनाने के लिए कहा जाएगा। ऑफर स्वीकार करें:
![स्वर्ग में बना एक मेल: Git और IntelliJ IDEA - 5]()
-
चूंकि कोई बिल्ड सिस्टम नहीं है और यह इस आलेख के दायरे से बाहर है, इसलिए हम मौजूदा स्रोतों से प्रोजेक्ट बनाएं चुनें :
![स्वर्ग में बना मैच: Git और IntelliJ IDEA - 6]()
-
आगे आपको यह सुंदर स्क्रीन दिखाई देगी:
अब जब हमने क्लोनिंग का पता लगा लिया है, तो आप चारों ओर देख सकते हैं।
Git UI के रूप में IntelliJ IDEA पर पहली नज़र
क्लोन प्रोजेक्ट पर करीब से नज़र डालें: आप पहले से ही संस्करण नियंत्रण प्रणाली के बारे में बहुत सारी जानकारी प्राप्त कर सकते हैं। सबसे पहले, हमारे पास निचले बाएँ कोने में संस्करण नियंत्रण फलक है। यहां आप सभी स्थानीय परिवर्तन पा सकते हैं और कमिट की सूची प्राप्त कर सकते हैं ("गिट लॉग" के अनुरूप)। लॉग की चर्चा पर चलते हैं । एक निश्चित विज़ुअलाइज़ेशन है जो हमें यह समझने में मदद करता है कि विकास कैसे आगे बढ़ा है। उदाहरण के लिए, आप देख सकते हैं कि txt कमिट में जोड़े गए हेडर के साथ एक नई शाखा बनाई गई थी, जिसे बाद में मास्टर शाखा में मिला दिया गया था। यदि आप किसी कमिट पर क्लिक करते हैं, तो आप दाएँ कोने में कमिट के बारे में सारी जानकारी देख सकते हैं: उसके सभी परिवर्तन और मेटाडेटा।
इसके अलावा, आप वास्तविक परिवर्तन देख सकते हैं। हम यह भी देखते हैं कि वहां एक विवाद सुलझा लिया गया था। आईडिया भी इसे बहुत अच्छे से प्रस्तुत करता है। यदि आप इस कमिट के दौरान बदली गई फ़ाइल पर डबल-क्लिक करते हैं, तो हम देखेंगे कि विरोध कैसे हल किया गया था: हम
ध्यान दें कि बाईं और दाईं ओर हमारे पास एक ही फ़ाइल के दो संस्करण हैं जिन्हें एक में विलय करने की आवश्यकता है। और बीच में, हमारे पास अंतिम विलयित परिणाम है। जब किसी प्रोजेक्ट की कई शाखाएँ, कमिट और उपयोगकर्ता होते हैं, तो आपको शाखा, उपयोगकर्ता और दिनांक द्वारा अलग से खोज करने की आवश्यकता होती है:
आखिरी बात जो मैं शुरू करने से पहले समझाना चाहता हूँ, वह यह है कि हम किस शाखा में हैं। इसका पता लगाने के लिए एक मिनट... क्या आपको यह मिला? छोड़ देना? : डी निचले दाएं कोने में, गिट लेबल वाला एक बटन है: मास्टर. जो कुछ भी "गिट:" का अनुसरण करता है वह वर्तमान शाखा है। यदि आप बटन पर क्लिक करते हैं, तो आप बहुत सी उपयोगी चीजें कर सकते हैं: दूसरी शाखा में स्विच करें, एक नई शाखा बनाएं, किसी मौजूदा का नाम बदलें, और इसी तरह।
रिपॉजिटरी के साथ काम करना
उपयोगी हॉटकीज़
भविष्य के काम के लिए, आपको कुछ बहुत ही उपयोगी हॉटकी याद रखने की आवश्यकता है:- CTRL+T — रिमोट रिपॉजिटरी (git पुल) से नवीनतम परिवर्तन प्राप्त करें।
- CTRL+K — एक कमिट बनाएं / सभी मौजूदा बदलाव देखें। इसमें अनट्रैक और संशोधित दोनों फाइलें शामिल हैं (गिट के बारे में मेरा लेख देखें, जो इसे समझाता है) (गिट कमिट)।
- CTRL+SHIFT+K — यह रिमोट रिपॉजिटरी में परिवर्तन करने के लिए कमांड है। स्थानीय रूप से बनाए गए और अभी तक दूरस्थ रिपॉजिटरी में नहीं बनाए गए सभी कमिट को पुश (गिट पुश) किया जाएगा।
- ALT+CTRL+Z - स्थानीय रिपॉजिटरी में बनाए गए अंतिम कमिट की स्थिति में एक विशिष्ट फ़ाइल में रोलबैक परिवर्तन। यदि आप ऊपरी बाएँ कोने में संपूर्ण प्रोजेक्ट का चयन करते हैं, तो आप सभी फ़ाइलों में परिवर्तन वापस कर सकते हैं।
हम क्या चाहते हैं?
काम पूरा करने के लिए, हमें हर जगह इस्तेमाल होने वाले बुनियादी परिदृश्य में महारत हासिल करनी होगी। उद्देश्य एक अलग शाखा में नई कार्यक्षमता को लागू करना है और फिर इसे एक दूरस्थ रिपॉजिटरी में धकेलना है (फिर आपको मुख्य शाखा के लिए एक पुल अनुरोध बनाने की भी आवश्यकता है, लेकिन यह इस लेख के दायरे से बाहर है)। इसे करने की क्या आवश्यकता है?-
मुख्य शाखा में सभी वर्तमान परिवर्तन प्राप्त करें (उदाहरण के लिए, "मास्टर")।
-
इस मुख्य ब्रांच से अपने काम के लिए एक अलग ब्रांच बनाएं।
-
नई कार्यक्षमता लागू करें।
-
मुख्य शाखा में जाएं और जांचें कि क्या हमारे काम करने के दौरान कोई नया बदलाव आया है। यदि नहीं, तो सब ठीक है। लेकिन अगर परिवर्तन होते हैं, तो हम निम्न कार्य करते हैं: कार्यशील शाखा में जाएं और मुख्य शाखा से हमारे परिवर्तनों को फिर से शुरू करें। अगर सब कुछ ठीक रहा तो बहुत अच्छा। लेकिन यह पूरी तरह संभव है कि विवाद होंगे। जैसा कि होता है, दूरस्थ रिपॉजिटरी में समय बर्बाद किए बिना, उन्हें पहले से ही हल किया जा सकता है।
क्या आप सोच रहे हैं कि आपको ऐसा क्यों करना चाहिए? यह अच्छा व्यवहार है और आपकी शाखा को स्थानीय भंडार में धकेलने के बाद होने वाले संघर्षों को रोकता है (बेशक, एक संभावना है कि संघर्ष अभी भी होगा, लेकिन यह बहुत छोटा हो जाता है)।
- अपने परिवर्तनों को दूरस्थ रिपॉजिटरी में पुश करें।
दूरस्थ सर्वर से परिवर्तन प्राप्त करें?
मैंने एक नई प्रतिबद्धता के साथ रीडमे में एक विवरण जोड़ा और इन परिवर्तनों को प्राप्त करना चाहता हूं। यदि स्थानीय रिपॉजिटरी और रिमोट रिपॉजिटरी दोनों में परिवर्तन किए गए हैं, तो हमें मर्ज और रिबेस के बीच चयन करने के लिए आमंत्रित किया जाता है। हम मर्ज करना चुनते हैं। CTRL+T दर्ज करें :
अब आप देख सकते हैं कि रीडमे कैसे बदल गया है, यानी रिमोट रिपोजिटरी से परिवर्तन खींचे गए थे, और निचले दाएं कोने में आप सर्वर से आए परिवर्तनों के सभी विवरण देख सकते हैं।
मास्टर के आधार पर एक नई शाखा बनाएँ
यहाँ सब कुछ सरल है।-
निचले दाएं कोने पर जाएं और Git: मास्टर पर क्लिक करें । + नई शाखा का चयन करें ।
![स्वर्ग में बना मैच: Git और IntelliJ IDEA - 15]()
चेकआउट शाखा चेकबॉक्स को चयनित छोड़ दें और नई शाखा का नाम दर्ज करें। मेरे लिए, यह रीडमी-इंप्रूवर होगा ।
गिट: मास्टर फिर गिट में बदल जाएगा : रीडमी-इंप्रूवर ।
आइए समानांतर काम का अनुकरण करें
विरोध प्रकट होने के लिए, किसी को उन्हें बनाना होगा: डी मैं ब्राउज़र के माध्यम से रीडमे को एक नई प्रतिबद्धता के साथ संपादित कर दूंगा, इस प्रकार समांतर कार्य को अनुकरण कर रहा हूं। यह ऐसा है जैसे जब मैं इस पर काम कर रहा था तो किसी ने उसी फ़ाइल में परिवर्तन किया हो। परिणाम संघर्ष होगा। मैं पंक्ति 10 से "fully" शब्द हटा दूंगा।हमारी कार्यक्षमता को लागू करें
हमारा काम रीडमे को बदलना और नए लेख में विवरण जोड़ना है। यानी Git में काम IntelliJ IDEA के जरिए होता है। इसे जोड़ें:
परिवर्तन किए गए हैं। अब हम एक कमिट बना सकते हैं। CTRL+K दबाएं , जो हमें देता है:
कोई कमिट बनाने से पहले, हमें यह विंडो क्या प्रदान करता है, इस पर बारीकी से विचार करने की आवश्यकता है। मैंने आपको यह दिखाने के लिए लाल तीर जोड़े कि आपको कहाँ देखना है। यहां बहुत सी रोचक चीजें हैं। कमिट मैसेज सेक्शन में , हम कमिट से जुड़ा टेक्स्ट लिखते हैं। फिर इसे बनाने के लिए, हमें कमिट पर क्लिक करना होगा. मुझे अभी भी यह नहीं पता चला है कि हॉटकी के साथ इसे कैसे किया जाए। अगर किसी को पता चले कि कैसे, कृपया मुझे लिखें - इससे मुझे बहुत खुशी होगी। हम लिखते हैं कि रीडमे बदल गया है और कमिट बनाता है। कमिट के नाम के साथ निचले बाएँ कोने में एक अलर्ट पॉप अप होता है:
जांचें कि क्या मुख्य शाखा बदल गई है
हमने अपना कार्य पूरा किया। यह काम करता है। हमने परीक्षण लिखे। और सब ठीक है न। लेकिन सर्वर पर पुश करने से पहले, हमें अभी भी यह जांचना होगा कि क्या इस दौरान मुख्य शाखा में कोई बदलाव हुआ है। ऐसा कैसे हो सकता है? काफी आसानी से: किसी को आपके बाद एक कार्य प्राप्त होता है, और यह कि कोई व्यक्ति आपके द्वारा अपना कार्य पूरा करने की तुलना में तेज़ी से पूरा करता है। इसलिए हमें मास्टर ब्रांच में जाने की जरूरत है। ऐसा करने के लिए, हमें वह करना होगा जो नीचे स्क्रीनशॉट में निचले दाएं कोने में दिखाया गया है:
मास्टर शाखा में, दूरस्थ सर्वर से इसके नवीनतम परिवर्तन प्राप्त करने के लिए CTRL+T दबाएं। परिवर्तनों को देखते हुए, आप आसानी से देख सकते हैं कि क्या हुआ:
शब्द "fully" हटा दिया गया था। हो सकता है कि मार्केटिंग से किसी ने फैसला किया हो कि इसे इस तरह नहीं लिखा जाना चाहिए और डेवलपर्स को इसे अपडेट करने का काम दिया। अब हमारे पास मास्टर शाखा के नवीनतम संस्करण की एक स्थानीय प्रति है। रीडमी-इंप्रूवर पर वापस जाएं । अब हमें मास्टर ब्रांच से अपने में हुए बदलावों को रिबेस करने की जरूरत है। हम यह करते हैं:
यदि आपने सब कुछ सही ढंग से किया और मेरे साथ अनुसरण किया, तो परिणाम को रीडमे फ़ाइल में एक संघर्ष दिखाना चाहिए:
यहां हमारे पास समझने और अवशोषित करने के लिए बहुत सारी जानकारी भी है। यहां फाइलों की एक सूची दिखाई गई है (हमारे मामले में, एक फाइल) जिसमें विरोध है। हम तीन विकल्पों में से चुन सकते हैं:
- अपना स्वीकार करें - केवल रीडमी-इम्प्रूवर से परिवर्तनों को स्वीकार करें।
- उनका स्वीकार करो - केवल गुरु से परिवर्तन स्वीकार करो।
- विलय - अपने आप को चुनें कि आप क्या रखना चाहते हैं और क्या त्यागना चाहते हैं।
यहां हम देख सकते हैं कि तीन भाग हैं:
- ये रीडमी-इंप्रूवर के बदलाव हैं।
- मिला हुआ परिणाम। अभी के लिए, यह वही है जो परिवर्तनों से पहले अस्तित्व में था।
- मास्टर शाखा से परिवर्तन।
वहाँ! हमने IntelliJ IDEA के माध्यम से अपना पहला संघर्ष सुलझाया: D
दूरस्थ सर्वर में परिवर्तन पुश करें
अगला कदम दूरस्थ सर्वर में परिवर्तनों को धकेलना और एक पुल अनुरोध बनाना है। ऐसा करने के लिए, बस CTRL+SHIFT+K दबाएँ । तब हमें मिलता है:
बाईं ओर, कमिट की एक सूची होगी जिसे दूरस्थ रिपॉजिटरी में नहीं धकेला गया है। दाईं ओर वे सभी फाइलें होंगी जो बदल गई हैं। और बस! पुश दबाएं और आप खुशी का अनुभव करेंगे :) यदि पुश सफल होता है, तो आपको निचले दाएं कोने में इस तरह की सूचना दिखाई देगी:
बोनस भाग
सबसे पहले, मैं इस लेख में एक पुल अनुरोध का निर्माण नहीं जोड़ना चाहता था, लेकिन यह इसके बिना पूर्ण नहीं है। तो, चलिए एक GitHub रिपॉजिटरी में जाते हैं (वह जो निश्चित रूप से आपकी है :)) और हम देखते हैं कि GitHub पहले से ही जानता है कि हम क्या चाहते हैं: तुलना करें और अनुरोध करें
पर क्लिक करें । फिर क्रिएट पुल रिक्वेस्ट पर क्लिक करें । क्योंकि हमने विरोधों को पहले ही हल कर लिया था, अब पुल अनुरोध बनाते समय, हम इसे तुरंत मर्ज कर सकते हैं: और इस बार मैं बस इतना ही कहना चाहता था। बेशक, मैंने आपके लिए केवल थोड़ा सा दरवाजा खोला है और आपको एक छोटा सा हिस्सा दिखाया है। बाकी के बारे में आप अपनी जरूरत के अनुसार जानेंगे। मुझे आपको GitHub पर फॉलो करने के लिए आमंत्रित करने की आदत है
, जहां मैं विभिन्न तकनीकों से संबंधित अपनी परियोजनाओं को पोस्ट करता हूं जिनका उपयोग मैं कार्यस्थल पर करता हूं। मैंने हाल ही में एक व्यक्तिगत उपलब्धि हासिल की: मेरी एक परियोजना को सौ से अधिक डेवलपर्स द्वारा स्टार दिए गए। जब आप जानते हैं कि आपने जो किया है उसका उपयोग कोई और कर रहा है तो एक अविश्वसनीय आनंद की अनुभूति होती है। और इसे अच्छे के लिए इस्तेमाल कर रहे हैं।





अब जब हमने क्लोनिंग का पता लगा लिया है, तो आप चारों ओर देख सकते हैं।
GO TO FULL VERSION