CodeGym /Java Blog /अनियमित /स्वर्ग में बना एक मैच: Git और IntelliJ IDEA
John Squirrels
स्तर 41
San Francisco

स्वर्ग में बना एक मैच: Git और IntelliJ IDEA

अनियमित ग्रुप में प्रकाशित
स्थापित परंपरा से चिपके हुए, मैं आपको भविष्य के वरिष्ठ सॉफ्टवेयर इंजीनियरों के रूप में अभिनंदन करता हूं। आज का लेख Git परस्वर्ग में बना एक मेल: Git और IntelliJ IDEA - 1 मेरे लेख का तार्किक विस्तार है । Git के बारे में लेख में, मैंने बताया कि कमांड लाइन पर Git के साथ कैसे काम किया जाए। आज मैं आपको दिखाऊंगा कि IntelliJ IDEA में यह सब कैसे करना है। एक डेवलपर के रूप में अपनी यात्रा की शुरुआत में, मैंने कमांड लाइन का इस्तेमाल किया और सोचा कि मुझे इसके लिए जीयूआई की जरूरत नहीं है। आखिरकार, सब कुछ स्पष्ट था जैसा कि था... लेकिन यह ठीक उस समय तक था जब मैंने IntelliJ IDEA में Git का उपयोग करना शुरू किया था... शुरू से ही, मैं यह कहना चाहता हूं कि मैं अपने व्यक्तिगत अनुभव का वर्णन कर रहा हूं। IntelliJ IDEA में दी गई किसी भी समस्या को हल करने के कई तरीके हैं। यदि आप लेख में जो वर्णन करेंगे, उससे बेहतर तरीका जानते हैं, तो इसे टिप्पणियों में लिखें और हम इस पर चर्चा करेंगे।

आवश्यक इनपुट:

  1. गिट के बारे में मेरा लेख पढ़ें, साथ चलें और समझें । इससे यह सुनिश्चित करने में मदद मिलेगी कि सब कुछ सेट अप है और जाने के लिए तैयार है।
  2. IntelliJ आईडिया स्थापित करें।
  3. पूर्ण महारत हासिल करने के लिए एक घंटे का व्यक्तिगत समय आवंटित करें।
आइए डेमो प्रोजेक्ट के साथ काम करें जिसका उपयोग मैंने Git के बारे में लेख के लिए किया था। अद्यतन:प्रकाशन के समय, नया GitHub UI उपलब्ध होगा, और कुछ आइकन वहाँ नहीं होंगे जहाँ वे लेख में दिखाए गए हैं। घबराएं नहीं: आपको बस या तो नए यूआई पर स्विच नहीं करना है, या उन्हें देखना है।

परियोजना को स्थानीय रूप से क्लोन करें

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

    स्वर्ग में बना एक मेल: Git और IntelliJ IDEA - 2
  2. IntelliJ IDEA खोलें और "संस्करण नियंत्रण से प्राप्त करें" चुनें:

    स्वर्ग में बना एक मैच: Git और IntelliJ IDEA - 3
  3. प्रोजेक्ट का पता कॉपी और पेस्ट करें:

    स्वर्ग में बना एक मेल: Git और IntelliJ IDEA - 4
  4. आपको IntelliJ IDEA प्रोजेक्ट बनाने के लिए कहा जाएगा। ऑफर स्वीकार करें:

    स्वर्ग में बना एक मेल: Git और IntelliJ IDEA - 5
  5. चूंकि कोई बिल्ड सिस्टम नहीं है और यह इस आलेख के दायरे से बाहर है, इसलिए हम मौजूदा स्रोतों से प्रोजेक्ट बनाएं चुनें :

    स्वर्ग में बना मैच: Git और IntelliJ IDEA - 6
  6. आगे आपको यह सुंदर स्क्रीन दिखाई देगी: स्वर्ग में बना एक मेल: Git और IntelliJ IDEA - 7अब जब हमने क्लोनिंग का पता लगा लिया है, तो आप चारों ओर देख सकते हैं।

Git UI के रूप में IntelliJ IDEA पर पहली नज़र

क्लोन प्रोजेक्ट पर करीब से नज़र डालें: आप पहले से ही संस्करण नियंत्रण प्रणाली के बारे में बहुत सारी जानकारी प्राप्त कर सकते हैं। सबसे पहले, हमारे पास निचले बाएँ कोने में संस्करण नियंत्रण फलक है। यहां आप सभी स्थानीय परिवर्तन पा सकते हैं और कमिट की सूची प्राप्त कर सकते हैं ("गिट लॉग" के अनुरूप)। लॉग की चर्चा पर चलते हैं । एक निश्चित विज़ुअलाइज़ेशन है जो हमें यह समझने में मदद करता है कि विकास कैसे आगे बढ़ा है। उदाहरण के लिए, आप देख सकते हैं कि txt कमिट में जोड़े गए हेडर के साथ एक नई शाखा बनाई गई थी, जिसे बाद में मास्टर शाखा में मिला दिया गया था। यदि आप किसी कमिट पर क्लिक करते हैं, तो आप दाएँ कोने में कमिट के बारे में सारी जानकारी देख सकते हैं: उसके सभी परिवर्तन और मेटाडेटा।स्वर्ग में बना एक मेल: Git और IntelliJ IDEA - 8इसके अलावा, आप वास्तविक परिवर्तन देख सकते हैं। हम यह भी देखते हैं कि वहां एक विवाद सुलझा लिया गया था। आईडिया भी इसे बहुत अच्छे से प्रस्तुत करता है। यदि आप इस कमिट के दौरान बदली गई फ़ाइल पर डबल-क्लिक करते हैं, तो हम देखेंगे कि विरोध कैसे हल किया गया था: हम स्वर्ग में बना मैच: Git और IntelliJ IDEA - 9ध्यान दें कि बाईं और दाईं ओर हमारे पास एक ही फ़ाइल के दो संस्करण हैं जिन्हें एक में विलय करने की आवश्यकता है। और बीच में, हमारे पास अंतिम विलयित परिणाम है। जब किसी प्रोजेक्ट की कई शाखाएँ, कमिट और उपयोगकर्ता होते हैं, तो आपको शाखा, उपयोगकर्ता और दिनांक द्वारा अलग से खोज करने की आवश्यकता होती है: स्वर्ग में बना मैच: Git और IntelliJ IDEA - 10आखिरी बात जो मैं शुरू करने से पहले समझाना चाहता हूँ, वह यह है कि हम किस शाखा में हैं। इसका पता लगाने के लिए एक मिनट... क्या आपको यह मिला? छोड़ देना? : डी निचले दाएं कोने में, गिट लेबल वाला एक बटन है: मास्टर. जो कुछ भी "गिट:" का अनुसरण करता है वह वर्तमान शाखा है। यदि आप बटन पर क्लिक करते हैं, तो आप बहुत सी उपयोगी चीजें कर सकते हैं: दूसरी शाखा में स्विच करें, एक नई शाखा बनाएं, किसी मौजूदा का नाम बदलें, और इसी तरह।स्वर्ग में बना मैच: Git और IntelliJ IDEA - 11

रिपॉजिटरी के साथ काम करना

उपयोगी हॉटकीज़

भविष्य के काम के लिए, आपको कुछ बहुत ही उपयोगी हॉटकी याद रखने की आवश्यकता है:
  1. CTRL+T — रिमोट रिपॉजिटरी (git पुल) से नवीनतम परिवर्तन प्राप्त करें।
  2. CTRL+K — एक कमिट बनाएं / सभी मौजूदा बदलाव देखें। इसमें अनट्रैक और संशोधित दोनों फाइलें शामिल हैं (गिट के बारे में मेरा लेख देखें, जो इसे समझाता है) (गिट कमिट)।
  3. CTRL+SHIFT+K — यह रिमोट रिपॉजिटरी में परिवर्तन करने के लिए कमांड है। स्थानीय रूप से बनाए गए और अभी तक दूरस्थ रिपॉजिटरी में नहीं बनाए गए सभी कमिट को पुश (गिट पुश) किया जाएगा।
  4. ALT+CTRL+Z - स्थानीय रिपॉजिटरी में बनाए गए अंतिम कमिट की स्थिति में एक विशिष्ट फ़ाइल में रोलबैक परिवर्तन। यदि आप ऊपरी बाएँ कोने में संपूर्ण प्रोजेक्ट का चयन करते हैं, तो आप सभी फ़ाइलों में परिवर्तन वापस कर सकते हैं।
स्वर्ग में बना मैच: Git और IntelliJ IDEA - 12

हम क्या चाहते हैं?

काम पूरा करने के लिए, हमें हर जगह इस्तेमाल होने वाले बुनियादी परिदृश्य में महारत हासिल करनी होगी। उद्देश्य एक अलग शाखा में नई कार्यक्षमता को लागू करना है और फिर इसे एक दूरस्थ रिपॉजिटरी में धकेलना है (फिर आपको मुख्य शाखा के लिए एक पुल अनुरोध बनाने की भी आवश्यकता है, लेकिन यह इस लेख के दायरे से बाहर है)। इसे करने की क्या आवश्यकता है?
  1. मुख्य शाखा में सभी वर्तमान परिवर्तन प्राप्त करें (उदाहरण के लिए, "मास्टर")।

  2. इस मुख्य ब्रांच से अपने काम के लिए एक अलग ब्रांच बनाएं।

  3. नई कार्यक्षमता लागू करें।

  4. मुख्य शाखा में जाएं और जांचें कि क्या हमारे काम करने के दौरान कोई नया बदलाव आया है। यदि नहीं, तो सब ठीक है। लेकिन अगर परिवर्तन होते हैं, तो हम निम्न कार्य करते हैं: कार्यशील शाखा में जाएं और मुख्य शाखा से हमारे परिवर्तनों को फिर से शुरू करें। अगर सब कुछ ठीक रहा तो बहुत अच्छा। लेकिन यह पूरी तरह संभव है कि विवाद होंगे। जैसा कि होता है, दूरस्थ रिपॉजिटरी में समय बर्बाद किए बिना, उन्हें पहले से ही हल किया जा सकता है।

    क्या आप सोच रहे हैं कि आपको ऐसा क्यों करना चाहिए? यह अच्छा व्यवहार है और आपकी शाखा को स्थानीय भंडार में धकेलने के बाद होने वाले संघर्षों को रोकता है (बेशक, एक संभावना है कि संघर्ष अभी भी होगा, लेकिन यह बहुत छोटा हो जाता है)।

  5. अपने परिवर्तनों को दूरस्थ रिपॉजिटरी में पुश करें।
आगे क्या आता है यह आपके कार्यों और आपकी कल्पना पर निर्भर करता है।

दूरस्थ सर्वर से परिवर्तन प्राप्त करें?

मैंने एक नई प्रतिबद्धता के साथ रीडमे में एक विवरण जोड़ा और इन परिवर्तनों को प्राप्त करना चाहता हूं। यदि स्थानीय रिपॉजिटरी और रिमोट रिपॉजिटरी दोनों में परिवर्तन किए गए हैं, तो हमें मर्ज और रिबेस के बीच चयन करने के लिए आमंत्रित किया जाता है। हम मर्ज करना चुनते हैं। CTRL+T दर्ज करें : स्वर्ग में बना मैच: Git और IntelliJ IDEA - 13अब आप देख सकते हैं कि रीडमे कैसे बदल गया है, यानी रिमोट रिपोजिटरी से परिवर्तन खींचे गए थे, और निचले दाएं कोने में आप सर्वर से आए परिवर्तनों के सभी विवरण देख सकते हैं।स्वर्ग में बना एक मेल: Git और IntelliJ IDEA - 14

मास्टर के आधार पर एक नई शाखा बनाएँ

यहाँ सब कुछ सरल है।
  1. निचले दाएं कोने पर जाएं और Git: मास्टर पर क्लिक करें । + नई शाखा का चयन करें ।

    स्वर्ग में बना मैच: Git और IntelliJ IDEA - 15
  2. चेकआउट शाखा चेकबॉक्स को चयनित छोड़ दें और नई शाखा का नाम दर्ज करें। मेरे लिए, यह रीडमी-इंप्रूवर होगा ।

    स्वर्ग में बना मैच: Git और IntelliJ IDEA - 16

    गिट: मास्टर फिर गिट में बदल जाएगा : रीडमी-इंप्रूवर

आइए समानांतर काम का अनुकरण करें

विरोध प्रकट होने के लिए, किसी को उन्हें बनाना होगा: डी मैं ब्राउज़र के माध्यम से रीडमे को एक नई प्रतिबद्धता के साथ संपादित कर दूंगा, इस प्रकार समांतर कार्य को अनुकरण कर रहा हूं। यह ऐसा है जैसे जब मैं इस पर काम कर रहा था तो किसी ने उसी फ़ाइल में परिवर्तन किया हो। परिणाम संघर्ष होगा। मैं पंक्ति 10 से "fully" शब्द हटा दूंगा।

हमारी कार्यक्षमता को लागू करें

हमारा काम रीडमे को बदलना और नए लेख में विवरण जोड़ना है। यानी Git में काम IntelliJ IDEA के जरिए होता है। इसे जोड़ें: स्वर्ग में बना मैच: Git और IntelliJ IDEA - 17परिवर्तन किए गए हैं। अब हम एक कमिट बना सकते हैं। CTRL+K दबाएं , जो हमें देता है: स्वर्ग में बना एक मैच: Git और IntelliJ IDEA - 18कोई कमिट बनाने से पहले, हमें यह विंडो क्या प्रदान करता है, इस पर बारीकी से विचार करने की आवश्यकता है। मैंने आपको यह दिखाने के लिए लाल तीर जोड़े कि आपको कहाँ देखना है। यहां बहुत सी रोचक चीजें हैं। कमिट मैसेज सेक्शन में , हम कमिट से जुड़ा टेक्स्ट लिखते हैं। फिर इसे बनाने के लिए, हमें कमिट पर क्लिक करना होगा. मुझे अभी भी यह नहीं पता चला है कि हॉटकी के साथ इसे कैसे किया जाए। अगर किसी को पता चले कि कैसे, कृपया मुझे लिखें - इससे मुझे बहुत खुशी होगी। हम लिखते हैं कि रीडमे बदल गया है और कमिट बनाता है। कमिट के नाम के साथ निचले बाएँ कोने में एक अलर्ट पॉप अप होता है:स्वर्ग में बना मैच: Git और IntelliJ IDEA - 19

जांचें कि क्या मुख्य शाखा बदल गई है

हमने अपना कार्य पूरा किया। यह काम करता है। हमने परीक्षण लिखे। और सब ठीक है न। लेकिन सर्वर पर पुश करने से पहले, हमें अभी भी यह जांचना होगा कि क्या इस दौरान मुख्य शाखा में कोई बदलाव हुआ है। ऐसा कैसे हो सकता है? काफी आसानी से: किसी को आपके बाद एक कार्य प्राप्त होता है, और यह कि कोई व्यक्ति आपके द्वारा अपना कार्य पूरा करने की तुलना में तेज़ी से पूरा करता है। इसलिए हमें मास्टर ब्रांच में जाने की जरूरत है। ऐसा करने के लिए, हमें वह करना होगा जो नीचे स्क्रीनशॉट में निचले दाएं कोने में दिखाया गया है: स्वर्ग में बना मैच: Git और IntelliJ IDEA - 20मास्टर शाखा में, दूरस्थ सर्वर से इसके नवीनतम परिवर्तन प्राप्त करने के लिए CTRL+T दबाएं। परिवर्तनों को देखते हुए, आप आसानी से देख सकते हैं कि क्या हुआ:स्वर्ग में बना मैच: Git और IntelliJ IDEA - 21शब्द "fully" हटा दिया गया था। हो सकता है कि मार्केटिंग से किसी ने फैसला किया हो कि इसे इस तरह नहीं लिखा जाना चाहिए और डेवलपर्स को इसे अपडेट करने का काम दिया। अब हमारे पास मास्टर शाखा के नवीनतम संस्करण की एक स्थानीय प्रति है। रीडमी-इंप्रूवर पर वापस जाएं । अब हमें मास्टर ब्रांच से अपने में हुए बदलावों को रिबेस करने की जरूरत है। हम यह करते हैं: स्वर्ग में बना एक मेल: Git और IntelliJ IDEA - 22यदि आपने सब कुछ सही ढंग से किया और मेरे साथ अनुसरण किया, तो परिणाम को रीडमे फ़ाइल में एक संघर्ष दिखाना चाहिए: स्वर्ग में बना मैच: Git और IntelliJ IDEA - 23यहां हमारे पास समझने और अवशोषित करने के लिए बहुत सारी जानकारी भी है। यहां फाइलों की एक सूची दिखाई गई है (हमारे मामले में, एक फाइल) जिसमें विरोध है। हम तीन विकल्पों में से चुन सकते हैं:
  1. अपना स्वीकार करें - केवल रीडमी-इम्प्रूवर से परिवर्तनों को स्वीकार करें।
  2. उनका स्वीकार करो - केवल गुरु से परिवर्तन स्वीकार करो।
  3. विलय - अपने आप को चुनें कि आप क्या रखना चाहते हैं और क्या त्यागना चाहते हैं।
यह स्पष्ट नहीं है कि क्या बदला। यदि परिवर्तन हैं तो मास्टर शाखा हैं, उन्हें वहां जरूरी होना चाहिए, इसलिए हम अपने परिवर्तनों को आसानी से स्वीकार नहीं कर सकते हैं। तदनुसार, हम विलय का चयन करते हैं : स्वर्ग में बना मैच: Git और IntelliJ IDEA - 24यहां हम देख सकते हैं कि तीन भाग हैं:
  1. ये रीडमी-इंप्रूवर के बदलाव हैं।
  2. मिला हुआ परिणाम। अभी के लिए, यह वही है जो परिवर्तनों से पहले अस्तित्व में था।
  3. मास्टर शाखा से परिवर्तन।
हमें एक मिश्रित परिणाम तैयार करने की आवश्यकता है जो सभी को संतुष्ट करे। हमारे परिवर्तनों से पहले क्या बदला गया था, इसकी समीक्षा करने पर, हमें पता चलता है कि उन्होंने केवल "fully" शब्द को हटा दिया था। ठीक है, कोई समस्या नहीं है! इसका मतलब है कि हम मर्ज किए गए परिणाम में भी इसे हटा देंगे और फिर अपने बदलाव जोड़ेंगे। मर्ज किए गए परिणाम को ठीक करने के बाद, हम लागू करें पर क्लिक कर सकते हैं । फिर एक अधिसूचना पॉप अप होगी, जो हमें बताएगी कि रिबेस सफल रहा: स्वर्ग में बना एक मैच: Git और IntelliJ IDEA - 25वहाँ! हमने IntelliJ IDEA के माध्यम से अपना पहला संघर्ष सुलझाया: D

दूरस्थ सर्वर में परिवर्तन पुश करें

अगला कदम दूरस्थ सर्वर में परिवर्तनों को धकेलना और एक पुल अनुरोध बनाना है। ऐसा करने के लिए, बस CTRL+SHIFT+K दबाएँ । तब हमें मिलता है: स्वर्ग में बना एक मेल: Git और IntelliJ IDEA - 26बाईं ओर, कमिट की एक सूची होगी जिसे दूरस्थ रिपॉजिटरी में नहीं धकेला गया है। दाईं ओर वे सभी फाइलें होंगी जो बदल गई हैं। और बस! पुश दबाएं और आप खुशी का अनुभव करेंगे :) यदि पुश सफल होता है, तो आपको निचले दाएं कोने में इस तरह की सूचना दिखाई देगी:स्वर्ग में बना मैच: Git और IntelliJ IDEA - 27

बोनस भाग

सबसे पहले, मैं इस लेख में एक पुल अनुरोध का निर्माण नहीं जोड़ना चाहता था, लेकिन यह इसके बिना पूर्ण नहीं है। तो, चलिए एक GitHub रिपॉजिटरी में जाते हैं (वह जो निश्चित रूप से आपकी है :)) और हम देखते हैं कि GitHub पहले से ही जानता है कि हम क्या चाहते हैं: तुलना करें और अनुरोध करेंस्वर्ग में बना एक मेल: Git और IntelliJ IDEA - 28 पर क्लिक करें । फिर क्रिएट पुल रिक्वेस्ट पर क्लिक करें । क्योंकि हमने विरोधों को पहले ही हल कर लिया था, अब पुल अनुरोध बनाते समय, हम इसे तुरंत मर्ज कर सकते हैं: और इस बार मैं बस इतना ही कहना चाहता था। बेशक, मैंने आपके लिए केवल थोड़ा सा दरवाजा खोला है और आपको एक छोटा सा हिस्सा दिखाया है। बाकी के बारे में आप अपनी जरूरत के अनुसार जानेंगे। मुझे आपको GitHub पर फॉलो करने के लिए आमंत्रित करने की आदत हैस्वर्ग में बना मैच: Git और IntelliJ IDEA - 29, जहां मैं विभिन्न तकनीकों से संबंधित अपनी परियोजनाओं को पोस्ट करता हूं जिनका उपयोग मैं कार्यस्थल पर करता हूं। मैंने हाल ही में एक व्यक्तिगत उपलब्धि हासिल की: मेरी एक परियोजना को सौ से अधिक डेवलपर्स द्वारा स्टार दिए गए। जब आप जानते हैं कि आपने जो किया है उसका उपयोग कोई और कर रहा है तो एक अविश्वसनीय आनंद की अनुभूति होती है। और इसे अच्छे के लिए इस्तेमाल कर रहे हैं।

उपयोगी कड़ियां

  1. CodeGym: Git के साथ शुरुआत करना: नौसिखियों के लिए एक व्यापक गाइड
  2. गिटहब: अभ्यास के लिए डेमो प्रोजेक्ट
  3. JetBrains: Git रिपॉजिटरी सेट अप करें
  4. गिटहब: मेरा खाता
टिप्पणियां
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION