Transcript for:
गिट का परिचय और बेसिक्स

Hello, एक और दिन है आज Get and Get Up के लिए It's gonna be interesting day and ये एक बहुत बड़ी सीरीज नहीं होने वाली है चेह साथ दिन, probably आठ दिन maybe and we'll be good and great with Get and Get Up Obviously इसको आपको दो माइने नहीं पढ़ना पड़ता So मैं बहुत खुश हूँ कि आप आपने अलरड़ी आदा complete कर लिया है, so you are already doing great, now I would say, आज का वीडियो पहले कुछ वीडियो के comparison थोला से ज़्यादा depth में जाएगा और आज के वीडियो के बाद आपको definitely feel हो जाएगा कि भाई था था यार भाई था So you will love the content It's time we should start Let's go to the computer screen और शिरू करते हैं लेजिए आल्राइट दोस्तों क्या हाल चाला आप लोगों के एक और वीडियो में आपका स्वागत है आज हम वीडियो में काफी सारे टॉपिक्स पर बात करने वाले हैं तो सबसे पहले इंपॉर्टेंट बात मैं आपको obviously बहले भी बता चुका हूँ हम इस series में no bullshit guide मतलब ऐसा नहीं कि 400 concepts पढ़ा दिया और उन में से use सिर्फ चारी होते हैं no, I'm gonna teach you जो actual काम है हम exercises इसलिए करते हैं तो हम एक्सरसाइज के बेसिस पर अपनी लाइफ को इजी कर सकें, उसका एक डेमो देता हूँ, फर एक्सांपल आप कहीं पर गए, खुदा न खासता कभी गलती से ऐसा हो गया, भगवान न करे कभी ऐसा हो, लेकिन अगर ऐसा हुआ, कि आपके जाती है, वैसे यहाँ पर है, same चीज यहाँ पर apply होती है, अगर आपको कभी काम करना है, आप कभी अपने projects manage करना चाहते हैं, अपने दोस्तों के साथ collaboration करना चाहते हैं, अपने comments के साथ collaborate करना चाहते हैं, तो आपको किन tools के actually ज� खुद के लिए अपने projects कैसे manage कर सकते हो ठीक है, and now I'm going to teach you about video 3 which is about status and logs, तो लाइज इंट्रस्टिंग स्टाफ है making possibilities कुछ होता है branching यह इसका technical term है we'll talk about all of this और some stashing वगेरा भी मैं समझा रहा हूँ so काफी आपको सब कुछ meaningful लगेगा वो exercise क्यों लग रही है ये चीज क्यों पढ़ रहे हैं हम और by the way, मैंने इस वक्त, इस वीडियो के लिए, अपने laptop पे यह जो theme है, color theme है, वो इस से change करके, पहले मेरी theme यह रहती थी, dark pitch black, उस से change करके, मैंने यह वाली theme करी है, dimmed, और उसके पीछे एक reason है, वो मैं अभी आपको आगे जाके बताऊंगा कि ऐसा क्य तो सबसे पहले कुछ important चीज़े मैं समझाना चाहता हूँ, theory stuff, let's go, पहले आप इसे पढ़ेंगे, जब भी आप एक folder बनाते हैं, फोल्डर बनाते हैं, git को कुछ नहीं पता, git को कुछ नहीं पता आ� इसलिए आप वहाँ पे get को initialize करते हो, कैसे करते हो, मैंने पिछले videos में बताया है, आप यहाँ पे तीसरे panel पे जाएंगे, source control, वहाँ पे दिखेगा initialize repository, इसका मतलब होता है कि अब आप यह कह रहे हो कि get, मेर को permissions मिली, permissions मिली, permissions मिली है तो git आपके folder को पहचानता है, आपकी folder को पहचानता है, पहचानता है, पर इस वक्त भी git आपकी folder को सिर्फ पहचानता है git को permission मिली है, git वहाँ पे काम नहीं कर रहा है, git बस इतना जानता है, ओके, यहाँ पे untracked files कौन सी है, track कौन सी हो रही है, कितने मैंने saved points बनाए है, कहने का मतलब git अपना कार्यक्रम कर सकता है, किया नहीं है. उसे allowance मिला है कि वो ये करे, बट किया नहीं है, तो अ� इस फोल्डर पे, अब इसलिए मैं थोड़ा सा typing mistakes करूँगा, क्योंकि git काम कर सकता है इस फोल्डर पर, अब हम यहाँ पर untracked, tracked, modified, staged stage जो कि added files होती है and saved checkpoints create कर सकते हैं saved checkpoints create कर सकते हैं ये मैंने आपको पिछली वीडियो में पढ़ाया है, राइट, तो मैं ये कह सकता हूँ कि Git अब आपके इस लाप्टॉप पे, आपके इस फोल्डर के अंदर कारिकरम परफॉर्म कर सकता है, क्या तुम मेरी बात समझ भी पा र यू कैन मैनेज ओवर हेर, यू कैन डू यू जॉब इन दिस फोल्डर, दिस वट वी सेट टू गिट, ग्रेट, गिट एस सेइंग, ओके, सो यू हाफ त्री फाइल्स, मा फ्रेंड, और दोसर अन्ट्राक्ट फ बिल्कुल नहीं देख रहा है कि उन files में आप क्या लिख रहे हो आप कुछ भी लिख रहे हो git doesn't give a fuck about it git says okay लिख रहा है लिखने दे क्या ही फरक पड़ रहा है it's like that untracked का मतलब यह है git वहाँ है और वो जानता भी है कि यह file है untracked है पर, untracked का मतलब git आपकी file को manage नहीं कर रहा है, okay पर वो manage कब करेगा, जब हम उसे stage कराएंगे, stage कैसे कराते हैं हम देखने वाले हैं आगे, ओके सर यह सब आप क्यों बता रहे हैं, अभी मैं समझाऊंगा ओके, तो पहले मैं चाहता हूँ आप इतना पढ़ने, स्क्रीन को पॉस्ट करिए इतना पढ़ लीजिए, प्लीज इतना पढ़ लीजिए, बढ़िया, तो मैं बिली� यह चेक कर सकते हो, आपके कितनी फाइल्स किस स्टेज पे हैं, मैं समझाओंगा, तो मैं यहाँ पे point wise लिख देता हूँ, चेक कर सकते हो आप कौन सी कितने saved points हैं, saved checkpoints हैं, जिन पे हम वापिस पीछे जा सकते हैं, मैंने आपको पीछली वीडियो में बताया था, और राइट, मेरी बात चुनिये, ये दो important चीजों को करने के लिए, हम commands use करते हैं उनके रामे get status minus s minus s का मतलब है दुनिया भर की bullshit नहीं देगा कि बिना minus sk क्या आता है और with minus s के आता है, so don't worry about that, एक और command है, उसका नाम है get log, यह आपको कई सारी चीज़ें बहुत दुनिया भर की detail दे देगा, जो कि हमें नहीं चाहिए, तो हम use करेंगे one line, मैं आपको दोनों देखाऊंगा, बिना one line के कैसे होता है, और with one line कैसे होता है, तो सर हम यह कह सकते हैं कि आपके folder में कितनी files हैं 25 हैं, उनके stages क्या हैं, मतलब कौन सी file untracked है, okay, कौन सी file tracked है, okay, कौन सी file committed है, okay, कौन सी file modified है, okay, कौन सी file को track ही नहीं कर रहा है, GitHub को idea ही नहीं है, है कौन, okay, तो यह साली चीज वो सारे check points आप build कर सकते हो, saved points आप check कर सकते हो with git log command, okay, ठीक है, perfect, और क्या पढ़ना है आज में, आज में पढ़ना है branching, तो सर यह अभी शुरू करें, अभी नहीं, पहले हम इन दोनों commands को निप्टाइंगे, प्लग इन डाल के रखा हुआ है, extension डाल के रखा है, उसका नाम है get auto config, अगर आप भी यह तो टॉप पे आपको पूछेगा कि आप कौन हो, बट अगर नहीं डालना है, कोई बात नहीं है, आप मत डालो, कोई दी इशूज नहीं है उसमें, अल्राइट, जैसी मैं यहाँ पे आया, मैंने अब यहाँ पे Git को इनिशलाइस किया है, तो अब हम हैं untracked files के stage पे लेकिन आप चाहें तो command prompt पे भी या terminal पे भी check कर सकते हैं तो control और बाद बई आपके laptop पे escape key के just नीचे key है control और वो key अगर आप साथ में press करोगे तो आपके laptop पे इस तरीके का terminal open हो जाएगा great अब मेरी बात ध्यान से सुनिये, इस command को type करें, git status-s, spacing जहाँ पे मैंने दी है, वहाँ पे spacing दी नहीं है, याद रखें, ठीक है, अगर मैं यहाँ पे check करा हूँ, तो यहाँ पे question mark, question mark का मतलब है, untracked files, okay, git is not aware of this file, git को पता नहीं let's add this, अब ये stage हो चुकी है add हो चुकी है, अब इसका status check करते हैं, get status minus s अब वहाँ पे a लिखा है, a का मतलब है आपकी पढ़ाई.md फाइल इस वक्त added status पे चल रही है, तो याद रखे hierarchy क्या है, सबसे पहले untracked होता है, फिर added होता है, फिर उसके बाद आप उसे modify कर सकते हो, या फिर commit कर सकते हो, right, okay, अब मैंने यहाँ पे कुछ modify करने वाला हूँ, देखिए, for example, last में मैंने एक space लगा दिया, मैंने एक extra space, space put किया है इस file में, ठीक है, by default अगर आप check करेंगे, तो यहाँ automatically लिखके क्या आने लगा, M, M मतलब होता है modified, लेकिन आप यहाँ भी check कर सकते हो, कि वहाँ पे क्या लिखा है, added है, पर currently यह modified है, okay, तो added तो है, एक बार add हो चुकी है, पर currently य local repo पे अभी इसकी current stage क्या चल रही है, ओके, तो अगर अपन समझें, तो added है, पर modified है, ओके, समझ गए, ठीक है, तो अगर मैं आपको समझाऊं, तो हमने आज ये पढ़ा है, initialize करू, देख लिया हमने get status minus s से हमें यह पता चलता है कि current status क्या है perfect, अब एक चीज़ का ख्याल रखिये अगर आपने files को commit कर दिया add किया है, तो पूरा stage हो चुका है अब git सारे changes जानता है सारे changes मेरी नजर में है ठीक है added है सारे changes added है अब अगर मैंने इसे commit कर दिया मैंने कहा first commit commit मतलब मैंने saved point बनाया है तो git के लिए अब ये file पढ़ाई.md एक नई फाइल की तरह है सब बढ़िया है तो अगर अब आप git का status चेक करेंगे अब सुनिये ये line गिट status, सिर्फ उनका status बताता है, सिर्फ उनका status बताएगा, जो files, जो files committed, committed committed नहीं है, या फिर committed होने के बाद, committed होने के बाद, change की गई, मैं समझाऊंगा, इस वक्त अगर मैं आपको पहला change किया है यहाँ पे, तो अब अगर आप check करेंगे, तो वापिस से status modified आएगा, क्या आप मेरी बात समझ पा रहें तो commit क्या करना है, एक बार भी commit किया, तो वो file हमारे लिए हो गई कि भाई मैंने checkpoint ले लिया है तो अब कोई status नहीं है किसी file का सब कुछ सब कुछ मेरी नजर में मैं checkpoint ले चुका हूँ files में गिट स्टेटिस बताता है फाइल के चेंजेस के बारे में, और उसके स्टेट के बारे में, पर ये सब तब होता है बिफोर कमिट और आफ्टर कमिट, कहने अब इसे इस file में कुछ भी नहीं दिखता, यह कहता है कि everything is fine, कोई दिखकत नहीं है, सब बढ़िया है, कोई दिखकत नहीं है, तो अब git status तुम्हें commit करने के बाद will not give you anything, ओके, तो सर, जैसे commit कर दिया ह कमिट के पहले की, फाइल स्टेज और कमिट के बाद की फाइल स्टेज तो ऐसा कुछ है सर मैं समझ नहीं स्टेज आपको यह बताता है कि फाइल का स्टेज क्या चल रहा है कमिट के पहले और कमिट के बाद अगर commit कर दिया, उसके बाद कोई भी status नहीं है, जब तक आप कोई change नहीं करोगे, और git log आपको बताता है, कि भाई आपके पिछले saved points क्या है, आपने कब आपको मिट किया था राइट सब्सक्राइब करने वाला हूं तब से पहले मैंने स्टेज किया और तुरंत उसके बाद मैं पर कमेट कर रहा हूं सेकंड कमेट ओके एंड वह बुमेड आईडू दाट अब कोई स्टेटस नहीं है राइट चेक कर तो आप get status minus s and there is no status at all, कोई भी status नहीं है, great, अब अगर मैं आपको lock चला के दिखाओ, get lock minus one nine, we can clearly दोनों second commit और first commit दोनों दिख रहे हैं एक important बात अगर आप ये minus one line के बिना चलाएंगे it will give you a lot of details कि भाई commit की पूरी ID ये है ये unique ID होती है इस वक्त head कहाँ पे है main पे head क्या होता भी हम समझेंगे branching के दौरान author कौन था, date क्या थी, second commit तो git log करें कितने हैं और किन नाम से हैं और कितने हैं वो भी पता चल जाएगा कि दो commits हुए हैं आज तक दो saved points इस file में बनाए गए हैं कि आप मेरी बात समझ पा रहे हैं तो ये दो commands रहे get status and get lock के बारे में और अब मैं आपको जो समझाना चाहता हूँ that is about branching that's about some interesting stuff it's time we move to a folder to a design tool first तब आपको समझ आएगा exactly branching होती क्या है और कैसे work करती है और कैसे आप काम कर सकते हो कितनी possibilities हैं और आपको काफी कुछ नहीं भी सीखने को मिलेगा and everything will make sense कि क्यों कर रहे हैं हम let's move forward अब इस tool में आपका सौगत है सबसे पहले इतना समझो कि branching मैं समझा रहूं लेकिन तुम full focus से पढ़ोगे I am your coach and I am saying you तुम्हें यही complete करना है, तुम full focus के साथ आप सामने देखोगे screen को, मैं तुम्हे पूरी शिद्धत से पढ़ाओंगा, तुम पूरी शिद्धत से पढ़ोगे हम इस topic को खतम कर देंगे, let's go सबसे पहले, तुम किसी भी एक website बना रहे हैं, इसका नाम है let's say abcd.com, अब ध्यान से सुनना, abcd.com का 32 line का code लिखा हुआ है, right, शिवम को बोला गया शिवम तुम्हें navbar बनाना है, ठीक है, तो navbar बनाना है, ओके, तो Shivam को navbar का task दिया गया, अगर Shivam ने गलती से भी direct इसके अंदर code लिख दिया, इस 32 line में, तो ये बन गया let's say 132 line, और Shivam ने गंदा code लिखा और वो break हो गया, तो ये पूरा main का main feature या main की main जस्ट अ सेकेंड, सबसे पहली इंपोर्टेंट बात, लेट्स कॉपी दिस, हाँ, तो हम शिवम को क्या करेंगे, हम कहेंगे शिवम ये लो 32 लाइन के कोड की कॉपी, तो शिवम को हमने वो 32 लाइन के कोड की कॉपी दे दी, अब शिवम यह जो आपने एक copy दी है, और शिवम अपनी copy पे काम कर रहा है, इसी को हम कहते हैं branching करना, सुनो, मैं समझाओंगा, तो क्या कर सकते हैं, कभी भी तुम अपने main code से, main code से कोई एक नई copy बना सकते हो, क्या यह स इस code के साथ merge कर दीजे, तो अब हम क्या करेंगे, हमारे इस code को merge करेंगे, और वो बन जाएगा, 132 line का code, जो कि exact duplicate है, इन दोनों, मतलब क्योंकि merge हो गया तो, एकदम same code बन चुके हैं, ये दोनों same code हैं, तो हम कहेंगे शिवम well done अब तुम्हारे code जो था उसका काम complete हो चुका है अब हमें तुम्हारी duplicate copy की जरूरत नहीं है तो शिवम अपनी duplicate copy को delete कर देगा और एकर जो linear path बनेगा वो ये बनेगा linear path जो बनेगा वो ये बनेगा तो कह सकते हैं कि जो आपके पहले 32 line का code था, अब व let's say, रुची को हमें एक और task देना है, रुची को हमने बोला कि भाई रुची अपन को footer add करना है, तो रुची को एक feature मिला है, feature slash add footer, ठीक है, तो रुची को ये एक task मिला है, तो रुची को add footer करना है, इस code के top पर, तो रुची क तो ये रुची का खुद का code है, क्या आप मेरी बात समझ पा रहे हैं, main अभी भी, main अभी भी 132 line का है, और रुची की side branch, जो कि है feature at footer, वो 232 line के है, और रुची ने कहा कि well done, मैंने अपना code कर लिया है complete, और मुझे इसमें कोई दिक्कत परि कि branching क्या होती है, basically आप अपने current, current जो भी stage है main branch की, main branch कहते हैं मिसे भी, तो main branch की current stage को आप बाहर निकाल सकते हो, duplicate copy, और फिर कोई उस पे काम कर सकता है, और अगर कोई भी काम करना है, वो उस पे काम करके, अपने test कर लें, तब वो आके हमारे मीन पाथ पे ओके तो यह होता है अब जगर हम समझें को हमने same feature यहां दे दिया let's say इन जनाब को एक animation build करना था और हमने एक और duplicate copy लिए है और हमने एक और duplicate copy लिए है और हमने let's say एक और duplicate copy लिए है अब इतनी सारी हमने इसके copy बनाई है ठीक है and मैं ये सारे बना दे रहा हूँ wait मैं सारी copies बना दे रहा हूँ यहाँ पे सारे अलग बंदे हैं इसका copy दे दिया, सारे 232 line के codes है, तो मैंने यहाँ पे 332 lines कर दी यहाँ पे let's say मैंने 1232 lines कर दी, यहाँ पे let's say मैंने 632 lines कर दी, और यहाँ पे let's say मैंने 500 lines का code लिख दिया है, ठीक है, तो यह तो मैंने इसके काम को इस काम के साथ मर्ज कर दिया जब मैंने इसके काम को merge कर दिया, तो कह सकते हैं कि अब ये lines बन गई हैं, 332 lines of code, 332 lines क्योंकि हमने इसको merge कर दिया, तो let's remove that, let's remove that, तो हम ये कह सकते हैं, हम ये कह सकते हैं, कि हमारा जो main है, अब वो पिछले 232 स्टेज से एक स्टेज आगे बढ़ चुका है लेकिन ये अभी तक मर्ज नहीं हुए हम इसे इसके साथ मर्ज करेंगे अब जब merge करेंगे तो एक चोड़ी सी problem आ सकती है अब वो problem पे बात करते हैं लेट्स गो, प्रॉब्लम सुनना और बहुत ध्यान से सुनना भाईयों, ठीक है, तो मेरे पास एक rectangle है, for example मैंने इस तरीके से बना लिया ऐसे, और मैंने इसकी branching करी हुई है, ठीक है, मैंने इसकी branching करी हुई है इसमें 32 लाइन का code है, इसमें भी अभी 32 लाइन का code है, perfect, सुनिये, मैंने इसमें 33 लाइन लिख दी, तो यह stage 1 आगे बढ़ गई, ठीक है, इसमें भी मैंने 33 लाइन लिख दी, हमने इसमें एक और लाइन लिख दियो तो 33 हो गई और जो हमने copy दी थी जो copy दी थी वो दी थी जब हमने 32 लाइन का code लिखा था कहने का मतलब है जब 32 लाइन का code था तब हमने इसको copy दी थी और इसके अंदर अब हमने 33 लाइन लिख दी है तो यह अपनी स्टेज से एक स्टेज आगे आ गया है और इन जनाम ने भी एक 33 लाइन लिखी है एक छोटा सा issue है पूछे क्या इसकी जो 33rd line है वो लिखी है where a is equal to 12 और भाई ये इसकी 33 लाइन है, और इसकी जो 33 लाइन है, वो लिखा है, where c is equal to 32, तो आप देखोगे, तो इसकी 33 लाइन का code अलग है, और ये दोनों एक-एक stage आगे आ चुके हैं, मेरी बात ध्यान से सुनिये, अब जब आ� तो गिट यहाँ पे जो तो गिट conflict कब देता, जब गिट confused है, समझ नहीं पा रहा है, कि भाईया line number 33 यहाँ पे अलग है, अब मैं कौन सी line consider करूँ यार, I'm not very sure about that, तो गिट तुम्हें तीन choices देगा, mainly तीन choices देगा, पहली, red line accept क इसको हम कहते है current change, पड़ेंगे हम, और तीसरी choice देगा, दोनो accept करो, तो कहने का मतलब ये भी लिखा होगा, और ये भी लिख जाएगा हमारे code में, समझ पा रहे हो, तो ये आपके main 3 options वहाँ पे रहेंगे, आ� ब्रांच होता क्या है पहले मुझे बताईए, यहाँ पे मैंने में एक फाइल बनाई, abcd.txt बन गई, और by the way मैंने पिछली session में बताया था, there is something called git ignore, तो I am making a git ignore file as well, and git ignore file से मैं क्या कर सकता हूँ, मैं यहाँ पे, बूल स बढ़िया तो शुरुआत से ही चल रहे हैं अपने लोग मैंने दोनों फाइल्स को स्टेज कर दिया और मैंने कहा first commit मतलब शुरुआत से ही चल रहे हैं बढ़िया तो done बढ़िया तो अगर मैं आपको show करूँ, तो इस वक्त कोई भी status नहीं होगा, क्योंकि हमने वहाँ पे एक बार commit किया गया है, एक बार checkpoint लिया गया है, perfect, ये हमारा पहला checkpoint है अब सुनिये branching branching क्या है एक भी नहीं, मैंने यहाँ पर हे कर दिया, हे, चलो, कैसे, हो, और मैंने इसको let's say, let's say मैंने add किया file को, so let's go here, let's add, let me commit, so मैंने कहा added one line, commit, that's about it, if we see, अब हमारे पास दो हैं, right, अगर मैं समझाओं, तो हमारी ABCD file में एक line का code आप कोई भी नाम से भी branch बना सकते हैं, लेकिन usually हम ऐसा नहीं करते हैं, जब आप production में काम करते हैं, या company में काम करते हैं, या आप किसी group के साथ collab करते हैं, तो आपको branch के नाम हमेशा meaningful देने चाहिए, usually हम shariants में ये pattern follow करते है feature slash और आप कोई भी feature का नाम लिख सकते है up to you for example मैं एक feature बनाता हूँ let's say navbar तो यहाँ पे मेरी branch का नाम है feature slash navbar enter तो आप type करेंगे get branch that's it that will show you कि कितनी branches है, mean and feature nav bar, अगर मैं आपको समझाऊं, तो इस वक्त तक क्या हो चुका होगा, let me draw it for you, मैं आपके लिए draw करूँगा, don't worry, so इस वक्त तक क्या हो चुका है, let me make this some green color and let me make this 70, तो यहाँ पे 32 line का code है, बढ़िया, यहाँ एक line का code actually हमारे code में ठीक है, एक line के code की duplicate copy बनी और वो copy अब किस में भी available है, वो copy किस में भी available है, हमारी दूसरी branch में, तो feature nav bar एक अलग copy है और mean एक अलग copy है let's come here बढ़िया और let's make this white ok और इसका नाम है feature navbar feature navbar बढ़िया राइट अब समझिये अब आपने navbar में कुछ code लिखा अभी इस वक्त हम लोग दो branches देख सकते हैं star का मतलब है हम इस वक्त main branch पे हैं get, switch, get switch, for example, feature slash navbar, देखेंगे तो इस वक्त मैं feature navbar branch पे आ चुका हूँ तो इस वक्त मैं अब इस branch पे हूँ यहाँ पे भी एक line का code है you can clearly see that code right मैंने एक line का code और लिखा जैसे की मैं अच्छा हूँ यह code मैंने किस में लिखा है feature nav bar branch पे तो अब यहाँ पे दो line का code है आप check करना चाहते हैं get switch main अब जब मीन में आएंगे एक चोटी से गड़बड हो गई है, which is about stashing, वो हम देखेंगे, don't worry, git, switch, main, हम main branch में हैं, and if I close this file and reopen, यहाँ पे हाँ पे आपको uncommitted changes दिख रहे हैं, आगी जाके हम stashing पढ़ेंगे तब समझ आए and let me commit this thing तो हम यहाँ पे बोल देते हैं added one more line इस वक्त हम feature navbar branch में है इस branch में है जो दो line का code है वो commit कर रहे हैं बढ़िया तो अब इस branch में दो line का code है right so अगर मैं यहाँ पे switch करूँ main में तो क्या है control यहाँ से move होके अब यहाँ आ चुका है अगर हम control को वापिस यहां ले जाएं जो कि हम कर सकते हैं get switch feature nav bar तो हमें दो line का code दिखेगा जो कि हमारा यहाँ पे है कि आप यह समझ पा रहे हैं तो इस तरीके से आप अपनी reality की copy ले सकते हैं उस copy में code लिखें commit करें kit switch main perfect, we are doing good job, अगर मैं आपको हिंदी हिसाब समझाओ, तो इस वक्त का कहानी यह है, अब जब हम इसे merge करेंगे, अब चलते हैं merging की process पे, तो मैं चाहता हूँ कि भी यह जो दो line का code है, यह इसमें mix कर दो, या merge कर दो, तो हम same level पे आ सबसे पहले आपको main branch पे आना ज़रूरी है, merge करने के लिए, तो अब आपका control कहा है, यहाँ, main branch पे, यहाँ पे एक line का code दिख रहा है, right, आपको merge कैसे करना है, feature nav bar branch को, तो आप लिखेंगे get, merge, feature nav bar branch, और जैसे आप enterprise तो हमने यहाँ पे एक main branch है, हमारे यहाँ पे main branch है, हमने इसका duplicate लिया था, right, हमने इसका duplicate लिया था, उसका नाम था, feature-navbar-branch, अब हमारे पास दोनों में ही दो-दो line का code है, फिर हमने feature-navbar-branch में एक और code लिखा, और अब यह बन ग और commit किया added one more line तो मैंने main में तीसरी line में क्या लिखा है hello ठीक है let's switch तो main की तीसरी line में hello लिखा है और feature nav bar की तीसरी line में मैंने hey लिखा है और इसमें भी addition कर दीजे come on stage added one more line and the moment I commit that तो अब हमारे दोनों branches हैं, मीन में अलग तीसी line का code है, और वहाँ पे अलग तीसी लाइन का code है, अब हमें दोनों को merge करना है, और merging होती है main से, तो आपको सबसे पहले main branch पे जाना है, perfect, यहाँ पे hello लिखा है, लेकिन अगर आप दूसरी branch को check करें, तो वहाँ पे hey लिखा है त यहाँ पे सीधी बात खड़े पे आपको लिखा हुआ दिखेगा conflict, that's a clear sign कि अब आपके पास issues हैं, let's handle that, यहाँ पे ध्यान से सुनिए, accept current change, current मतलब आपके इस branch में, इस वक्त main में, क्या आप समझ रहे हैं, तो main branch के change अगर आपको accept करने हैं, main changes आपको यहाँ देखेंगे, तो accept incoming change आपको करना है तो उस branch वाला change accept करना है तो यह accept करिए, current change accept करना है तो यह accept करिए, both changes accept करने है तो यह accept करिए, याद रखिए तीनों में से कुछ भी accept करिए, उसके बाद आपको वापिस से add करके commit करना पड़ेगा, for example, मैंने कहा मुझे दोनों changes accept करने है, तो let's do that एक अजीब सा sign देखेगा यह exclamation वाला sign, वो इसलिए देख रहा है कि यार ये तो नया सा कुछ change हो गया तो फिर आपको क्या करना पड़ेगा, वापिस से add, और आपको लिखना पड़ेगा, merged branch जो भी message है, आप चाहो तो यह message लिख सकते हो, या फिर आप चाहो तो अपना खुद का message लिख सकते हो, right, commit करिए, that's about it, अगर आप देखेंगे तो इस वक्त आपकी दोनों branches merge हो चुकी हैं और हम इस वक्ता हैं main पे हैं अगर आप status check करेंगे status minus s you will not see anything क्योंकि commit properly complete हो चुका है perfect अब आते हैं समझने कि सहाब total log क्या है log देखना चाहेंगे आप minus one line, तो अगर आप देखेंगे तो यह हमारा पूरा log है और इस तरीके से काम काज हुआ है interesting चीज देखोगे आप अगर आप इसके आगे minus graph put कर दोगे तो यह आपको बताएगा रास्ता कैसे तूटा था, तो कहानी कोई जैसे हुई थी, कि हम लोगों ने added one more line की एक copy ली थी, added one more line की एक copy ली थी branch में, right, तो यह copy चली गई side में, okay, हमारा level same था, तब यह branch एक level आगे बढ़ गई, और हमारा level भी एक level आगे बढ़ गया, अब हमें यह दोनों branches को add करना था, कहने का मतलब है, वो branch भी एक level आगे बढ़ गई, हम भी एक level आगे बढ़ गए, अब हमें दोनों को add करना था, तो यहाँ पे जो हमें करना पड़ा, वो था three way merge, जिनके नाम मैंने यहाँ पे लिखे हुए हैं fast forward merge and three way merge यहाँ पे बहुत सारे merging techniques होती हैं but हम लोग यहाँ पे इस tutorial में mainly life में आपको सिर्फ ये दो ही techniques के बारे में जानना पड़ता है तो let me tell you fast for a merge और let me tell you the three-way merge as well. So, यह techniques work कैसे करती हैं? तो कहने का मतलब है कुछ यह. For example, यहाँ पे आपका current code है, यह mean चल रहा है, green का मतलब mean, green का मतलब mean, और red का मतलब side branch. और ठीक है, अब मैंने इसका एक copy लिया जो कि side branch में गया, perfect धान से सुनिये, तो यहां तक इसको link करने के लिए let me do that thing परफेक्ट, वे दोएंगे गुड़ जॉब तिल नाओ, बढ़िया, जस्ट अ सकिन नाओ, तो मैं ये यूज़ कर रहा हूँ, और इस ब्रांच का एक्जाक्ट डूप्लिकेट कॉपी है, मेरे पास यहा let me do this thing, there as well, तो ये branch आगे बढ़ चुकी है, और मैंने इस branch में भी कुछ code लिख दिया, तो ये branch भी आगे बढ़ गई है, ओके, ठीक है, तो ये branch भी आगे बढ़ गई है, अब ये होने क्या वाला ह आप उसकी नई stage उठाते हो, और आप ये stage उठाते हो, तो ये 3 points आप उठाते हो, और एक नया commit बिल्ड करते हो, main के ये अंदर, ठीक है, और ये जो नया बना हुआ ह मीन में, और ये इस branched commit का commit, तो इसके अंदर नए changes हैं, और इसके अंदर real truth है, सबसे पहला वाला truth, जिस truth से ये बना, और इसी truth से ये बना, तो इसके अंदर सबसे पहली copy है, real code, original copy है तो हम original copy को नए changes, नए changes के साथ mix blend करते हैं और एक नया commit बनता है और जब आप ये तीन चीज़ों का use करते हैं और उससे बनने वाले commit को हम कहते हैं three way merge, ठीक अब आते हैं एक step आगे अब आते हैं fast forward merge पे तो basically fast form merge क्या होता है यह actually बहुत easy है यह आपके actual copy है जो आपका real code है main branch and आपने decide क्या इसका बढ़िया इस copy पे और changes हुए तो ये double ये मतलब आगे बढ़ गई कहने का मतलब है perfect nice तो अगर मैं समझाओं तो ये copy आगे बढ़ गई ठीक है अब आपको चाहिए कि मुझे जो भी इसमें नया code है वो मैं यहां लाना चाहता हूँ fast forward में आप एक नया commit नहीं बनाते हैं जो आपके head की location होती है head की location तैय करता है कि इस वक्त हम कहा है ठीक है इस वक्त हम कहा है हमारा recent commit क्या है वो head बताता है by default head आपका यहाँ था और फिर उस copy पे आपने change करते हैं, तो head अभी भी यहाँ यहां ले आते हैं और यहां से head की location हटा देते हैं तो कहने का मतलब है fast forward merge में हम एक नया commit नहीं बनाते हैं जैसे 3v में हम अलग commit बनाया था वो नहीं करते हैं हम क्या करते हैं यह जो extra commits बने थे जो head यहाँ पे point कर रहा था तो automatically ऐसा लगेगा कि अब आपने merge कर दिया है इस reality से इस एक line के code से यह copy बनी थी एक line की और इस एक line की copy से यह तीन line की copy बनी थी अब head इस तीन line की copy को point कर रहा है technically आप नई copy को point कर रहे हो merge करने के बाद क्या आप मेरी बात समझ पा रहे हो merge यहाँ पे हुआ ही नहीं है fast forward merge में merge नहीं हुआ है merge जिसको कहते हैं वहाँ पे क्या हुआ है सिर्फ head की location जो पहले यहाँ थी वो अब इकदम latest copy पे आ जाती है that's it but actually merge नहीं हुआ है so this was fast forward merge and three way merge ये इन techniques को हम इस तरीके से use करते हैं हमने conflicts को handle किया है वो है branch delete करना and stashing, समझना, let's go, तो सबसे पहले मैं आपको branch delete करना समझाना चाहता हूँ, clear, okay, तो सबसे पहले लिखते हैं कितनी branches हमारे पास, actually दो हैं, feature and app bar and mean, अब जब हमारी feature and app bar branch हमने merge कर लिया है, अब कुछ बचा नहीं उसमें, तो हम उसे delete कर सकते हैं, क्यों प्रेस करिए, this will remove, बढ़िया, तो यह हुआ branch को delete करना, किसी भी branch को delete कैसे करते हो, perfect, अब आते है stashing समझना, which is an interesting concept, तो stashing work करती है, stashing by the way होती क्या है पहले, जब आप किसी branch में काम कर रहे हो, और आप दूसरी ब्रांच में जाने की कोशिश करते हो, तो गिट आपको बोलता है कि भाई saved नहीं है changes, saved नहीं है, मतलब checkpoint नहीं बनाया है, saved नहीं है changes, delete हो जाएंगे, delete हो, जाएंगे हम चाहें तो उन changes को delete होने दें या फिर उन changes को draft कर सकते हैं मैं समझाओंगा जब भी draft करेंगे तो वो changes ना ही ना ही आड होंगे, बट, बीच में कहीं, कहीं डले रहेंगे, मैं समझाओंगा, फिर आप उस ब्रां� मैं चाहता हूँ पहले आप इस थेवरी को पढ़ लें, मैं चाहता हूँ पहले आप इस थेवरी को पढ़ लें आराम से, and I seriously want that, pause this video, read the story जो मैंने इसाबने लिखी है, बहुत बढ़िया, मुझे उमीद है आप इससे क्या हो रहा है आप branch बना के सीधा switch कर दोगे इसमें दो काम हो जाएंगे आप switch भी कर दोगे branch को और कैसे switch करोगे minus c का मतलब है पहले create करो फिर switch करो तो आपको दो command नहीं लिखने पड़ेंगे get switch minus c feature slash add footer ये मेरी branch का नाम है add footer footer नहीं footer great perfect for example ये मेरी branch है let's say let's say get get switch झाल मेन ठीक है मैं मेन ब्रांच में हूं यहां पर हेलो लिखा हुआ है ठीक है और इस वक्त इस ब्रांच पर आप देखेंगे तो कोई भी इशूज नहीं है मैंने कुछ भी नया नहीं लिखा है अब मैं इस ब्रांच पर एक W ल इसको क्या delete करना चाहते हैं या क्या तो यह ल अब बेसिकली जिस branch में जा रहे हो, तो आप checkout करोगे इस branch से, main branch से checkout करोगे और अगली branch में जाओगे, तो इस branch की जो changes हैं वो चले जाएंगे, please commit your changes and stash them before you switch branches, तो stash कैसे करेंगे, तो आप लिखेंगे, get, stash, that's it, तो इस वक्त जो उस पे जाके आपको जो perform करना आप कर सकते हो for example कैसे हो या check करना है कुछ या कुछ भी है तो आप वो check back कर लो आप आराम से and then आप वापिस अपनी branch में आईए जिस भी branch में आपको वापिस आना है stash, apply, in the moment you do that, आपके जो changes पहले अब वो changes वापस आ चुके हैं where a is equal to 12 and में को लगता है एक सगेन यार वो मुझे यार वो उस ब्रांच में मैंने क्या code लिखा था वो मुझे देखना है तो अब मैंने ये commit अब मैंने ये code जो लिखा है ये मैंने add वगैरा कुछ भी नहीं किया है तो मैं यहाँ पर switch कर रहा हूँ switch feature add putter ब्रां� इस code को stash और जैसे stash करूँगा तो वो code spelling mistake है actually वो code जो है वो यहां से तो हट जाएगा ओके हट गया तो जो भी changes थे वो यहां से हट गए और अभी हट गए है ऐसा लग रहा है कि चले गए चले नहीं गए वो बस git ने उनको अपनी memory में रखा है apply नहीं किया है यहाँ पे feature add footer वहाँ पे जो भी चेक करना आप कर लो चेक और फिर वापिस इस branch पे आ सकते हो switch mean अब आपके जो changes हैं वो आपको वापिस से चाहिए तो कैसे लाओगा आप get stash apply तो जो stash पहले बनाया था उसे apply करो और just a second वो spelling फिर से mistake है और stash apply करोगे तो हमारा code वापस आ जाएगा right अब कल को आप stash clear, and the moment you do that, अब कोई भी stash इसमें नहीं है, जो save किया गया था वो हट चुका है, और अब आप इसमें अब आपके यह जो चेंज है यह वापिस से अंट्रैक्ट चेंज है वह मतलब वह मोडिफाइट चेंज है राइट और अगर आप फिर आपको वापस से स्टैश करना पड़ेगा एंड देन यू केन गो टू थे ब्रांच यू के डू वर्ट एवर यू वांट यू केन कम बैक टू देस्ट ब्रांच अगेन एंड देन यू केन अप्लाई द टैश अगेन जस लेक आपको इस वीडियो में काफी कुछ सीखने समझने को मिला होगा कैसे आप खुद के साथ वर्क करते हो, आप कैसे डिफरेंट ब्रांचे क्रेट करते हो, कैसे उनमें मरजिंग होती है, और मरजिंग की दो टेकनीक्स क्या है मेंली, ये सब आपको समझ आया हो पेस्ट से हम पढ़ रहे हैं और मज़ा आ रहे हैं प्लीज डू कॉमेंट लेक् मी नो अबाउट दाट तो please do comment that's about it I believe