पाठ 13 · रोजमर्रा का काम
पुश कमिट करें और एक शाखा प्रकाशित करें
लियो के नए मुख्य को अधिलेखित किए बिना इच्छित शाखा को स्थानीय मूल मूल में प्रकाशित करें। केवल पीछे वाले मुख्य को स्पष्ट रूप से आगे लाएँ, फिर सुविधा को अपने स्वयं के अपस्ट्रीम के साथ प्रकाशित करें।
- स्तर: शुरुआती
- 8 मिनट पढ़ा
- 4 मिनट का वीडियो
- अद्यतन किया गया
- इस पाठ से पहले: अपने पृष्ठ को बदले बिना टीम के साथी का परिवर्तन प्राप्त करें
प्रगति इस ब्राउज़र में सहेजी गई.
चलाने से YouTube से वीडियो लोड होता है (गोपनीयता-उन्नत मोड)।
आप क्या सीखेंगे
- पुश करने से पहले स्रोत और गंतव्य का निरीक्षण करें।
- मर्ज कमिट के बिना केवल पीछे वाली शाखा को तेजी से आगे बढ़ाएं।
- एक नामित सुविधा प्रकाशित करें और उसके अपस्ट्रीम को सत्यापित करें।
- खोए हुए काम से इनकार को अलग करें।
शुरू करने से पहले
जहां पाठ 11 समाप्त हुआ वहां से शुरू करें: मुख्य/एच6 चेक आउट, मूल/मुख्य/सर्वर एच7 लियो के पादलेख के साथ, साफ, मुख्य छह बनाम प्राप्त सात कमिट और 0/1। फ़ीचर F1 केवल अपस्ट्रीम के बिना स्थानीय रूप से मौजूद है।
वीडियो को Git 2.52.0 और GitTree 2.0 के साथ Ubuntu 24.04 पर रिकॉर्ड किया गया था: फास्ट-फॉरवर्ड, पुश और अपस्ट्रीम ऐप में किया गया था; टर्मिनल में पहले और बाद की जांच और अस्वीकृत पुश चला। macOS या Windows पर कुछ भी नहीं चलाया गया, और Ubuntu ही एकमात्र Linux सिस्टम रिकॉर्ड किया गया है। GitTree का स्रोत Git फ़्लोर 2.39.0 है।
GitTree आपसे साइन इन करने के लिए कहता है; फिर नि:शुल्क योजना यहां हर चरण को कवर करती है। किसी प्रदाता खाते, प्रो/ट्रायल, एपीआई क्रेडेंशियल या इंटरनेट सेवा की आवश्यकता नहीं है। स्थानीय मूल उत्पत्ति GitLab या सीआई नहीं है। सभी पहचान example.com का उपयोग करती हैं; इस पाठ को कभी भी स्रोत चेकआउट के अंदर न चलाएँ।
समान इनपुट पर या तो GitTree या मूल पथ के माध्यम से उत्परिवर्तन करें, दोनों लगातार नहीं। केवल पढ़ने योग्य सत्यापन का पालन किया जा सकता है। टर्मिनल कार्य के रूप में वर्णित किसी भी तैयारी को मूल तैयारी का लेबल दिया जाता है, कभी भी एक आविष्कृत ऐप सुविधा नहीं।
अवधारणा और राज्य प्रभाव
पुश चयनित दूरस्थ रेफरी के लिए अद्यतन प्रस्तावित करता है। यह प्रत्येक फ़ाइल, अनट्रैक किए गए बफ़र या शाखा का बैकअप नहीं है। नेटवर्क कनेक्शन काम करने पर भी कोई गंतव्य अपडेट को अस्वीकार कर सकता है।
आने वाला H7 मुख्य/H6 से उतरता है। मर्ज कमिट का आविष्कार किए बिना एक फास्ट-फॉरवर्ड मुख्य रूप से उस वंशज की ओर बढ़ सकता है। यह संकीर्ण रूप से बताई गई वंशावली प्रक्रिया यहाँ प्रस्तुत की गई है; अपसारी एकीकरण पाठ्यक्रम के बाद के पाठों से संबंधित है।
प्रकाशन सुविधा/मूल्य-कार्ड F1 को एक नई सर्वर शाखा में भेजता है। GitTree में वह पुश अपस्ट्रीम का चयन नहीं करता है: आप इसे बाद में उसी शाखा पंक्ति से सेट करते हैं। यह न तो वर्तमान शाखा को स्विच करता है और न ही अपने वर्कफ़्लो कार्ड को मुख्य में विलय करता है। एक सफल नो-ऑप मुख्य पुश कोई नया सर्वर कमिट नहीं है।
स्पष्ट फास्ट-फॉरवर्ड मुख्य/HEAD, इंडेक्स और कार्य को H7 में बदल देता है। सफलता के बाद पुश केवल चयनित सर्वर रेफरी और स्थानीय ट्रैकिंग/कॉन्फ़िगरेशन को बदलता है; यह बिना मंचित पाठ को सहेजता नहीं है। रिमोट मेन को लियो की प्रतिबद्धता बरकरार रखनी होगी।
सटीक प्रोजेक्ट स्थिति तैयार करें
पाठ 11 के बाद मूल का उपयोग करें, स्थिर पूर्वावलोकन के लिए पृष्ठभूमि को हटा दें। कोई नई फ़ाइल पेलोड या नोटबुक नहीं जोड़ी गई है। जानबूझकर पीछे-मुख्य अस्वीकृति एक अलग मूल टेक है, ऐप फोर्स-पुश पर क्लिक करने का निर्देश नहीं।
GitTree में
पैलेट: Command+Shift+P (Ubuntu पर Ctrl+Shift+P); सटीक नामित कमांड टाइप करें और उसका चयन करें। नामांकित-रेफ क्रियाएँ उस पंक्ति के संदर्भ मेनू का उपयोग करती हैं, तर्क-मुक्त पैलेट शॉर्टकट का नहीं।
- मुख्य रूप से, वास्तविक स्रोत/गंतव्य और 0/1 गणना का निरीक्षण करें; कैनोनिकल टेक में पुराने मेन को पहले न धकेलें।
- साइड पैनल के रिमोट ग्रुप में, origin/main → Merge origin/main into main पर राइट-क्लिक करें। Record it as में Fast-forward only चुनें, फिर Merge चुनें। सिंह के पाद लेख, एक अभिभावक और ग्राफ़ में एक सीधी रेखा के साथ H7 पर मुख्य की अपेक्षा करें।
- नीचे वंश/स्वच्छ रीडबैक चलाएँ; यदि मुख्य विचलन हो, तो पुनर्लेखन मोड चुनने के बजाय रद्द करें।
- मुख्य पर टूलबार Push पर क्लिक करें। नोटिस में लिखा है, "सब कुछ पहले से ही अद्यतित था।": यह कोई नई प्रतिबद्धता नहीं है।
- लोकल के अंतर्गत, feature फ़ोल्डर खोलें और pricing-cards → Push feature/pricing-cards पर राइट-क्लिक करें। एक रिमोट के साथ कोई संवाद नहीं है: नोटिस में लिखा है, "सुविधा/मूल्य-कार्ड को मूल/सुविधा/मूल्य-कार्ड पर धकेल दिया गया।"
- पुश ने अपस्ट्रीम सेट नहीं किया (शाखा में कोई नहीं था)। उसी पंक्ति पर राइट-क्लिक करें → Upstream → Set Upstream…, What should feature/pricing-cards track? में origin/feature/pricing-cards चुनें, फिर Track चुनें। सर्वर सुविधा F1 और अपस्ट्रीम को सत्यापित करें।
- चेकआउट के बिना मुख्य और फीचर ग्राफ़ लेबल का चयन करें; पुष्टि करें कि वे अलग-अलग युक्तियाँ बने हुए हैं और कोई मर्ज सामने नहीं आया है।
- मुख्य को चेक आउट, साफ़, दोनों नामित सर्वर शाखाओं को सत्यापित छोड़ दें। फ़ोर्स पुश... का चयन न करें या प्रत्येक रेफरी को प्रकाशित न करें।
प्रत्येक सामान्य प्रतिबद्धता के लिए: सारांश बताया गया विषय है; विवरण रिक्त; पिछली प्रतिबद्धता में संशोधन करें, हुक छोड़ें, हस्ताक्षरित-ऑफ-बाय, अलग लेखक जोड़ें, प्रतिबद्धता के बाद पुश करें और खाली प्रतिबद्धता को अनुमति दें; कोई सह-लेखक नहीं. केवल नामित फ़ाइलों को चरणबद्ध करें, फिर एक बार एन फ़ाइलों में परिवर्तन करें (एक के लिए फ़ाइल), या विकल्प के रूप में कमांड+एंटर करें। वास्तविक परिणाम की प्रतीक्षा करें. एक पाठ जो स्पष्ट रूप से संशोधन करता है वह केवल उस बताए गए विकल्प को बदलता है।
टर्मिनल में
मूल डेमो से, मूल विकल्प:
git rev-list --left-right --count main...origin/main
git merge --ff-only --quiet origin/main
git push --quiet origin main
git push --quiet --set-upstream origin feature/pricing-cards
git rev-list --left-right --count main...origin/main
git rev-parse --abbrev-ref 'feature/pricing-cards@{upstream}'
git symbolic-ref --short HEAD
git status --shortप्रथम गिनती0/1; तेज़-फ़ॉरवर्ड और शांत पुश निकास 0. अंतिम रीडबैक प्रिंट, क्रम में:
0 0
origin/feature/pricing-cards
mainस्थिति मौन है. स्वतंत्र रूप से सर्वर/स्थानीय मुख्य की तुलना करें और git ls-remote --heads origin के साथ वास्तविक SHA की सुविधा दें; परिवर्तनीय आईडी को उनकी इच्छित स्थानीय युक्तियों से मेल खाना चाहिए। प्री-फ़ास्ट-फ़ॉरवर्ड नेगेटिव टेक को अलग करें: git पुश -- शांत मूल मुख्य निकास 1 वास्तविक निदान अंश के साथ:
! [rejected] main -> main (non-fast-forward)पूर्ण डायग्नोस्टिक मापी गई स्थानीय फ़ाइल URL और Git संकेतों को नाम देता है। उस इनकार पर कोई रिमोट रेफरी नहीं बदला गया; URL का निर्माण न करें या बलपूर्वक मरम्मत न करें।
नतीजा
Where you end: मुख्य को तेजी से H7 पर अग्रेषित किया गया और अभी भी चेक आउट/साफ़ किया गया है; सर्वर मुख्य H7 रहता है। फ़ीचर F1 अब मूल/फ़ीचर/मूल्य निर्धारण-कार्ड के रूप में प्रकाशित होता है और इसे ट्रैक करता है; मुख्य और फीचर का विलय नहीं किया गया.
सामान्य गलतियाँ
- जब आपका मतलब नामित सुविधा से हो तो वर्तमान मुख्य को प्रकाशित करना।
- लियो को अधिलेखित करने की अनुमति के रूप में केवल पीछे के इनकार को मानना।
- यह मानते हुए कि पुश ने फीचर के अपस्ट्रीम को सेट कर दिया है, या इसे सेट करने से कुछ भी मर्ज हो गया है: ऐप को अलग सेट अपस्ट्रीम… चरण की आवश्यकता है।
अगर कुछ गलत होता है
इनकार करने के बाद, पुनः प्रयास करने से पहले वंश/गंतव्य को प्राप्त करें और उसका निरीक्षण करें। इस सटीक केवल-पीछे इनपुट के लिए स्पष्ट फ़ास्ट-फ़ॉरवर्ड का उपयोग करें। रिमोट पुश में कोई सामान्य ऐप पूर्ववत नहीं होता है; किसी भी बाद के दूरस्थ सुधार का समन्वय करें।
अपनी समझ की जाँच करें
प्रत्येक प्रश्न का उत्तर दें, फिर क्यों पढ़ें। "आवश्यक" चिह्नित प्रश्न पाठ को पूरा करने में गिने जाते हैं।
6 में से 0 सही
पाठ को पूरा करने के लिए आवश्यक प्रश्नों के सही उत्तर दें।
इस ब्राउज़र में चेक किया गया.
अभ्यास करें
मुख्य/सर्वर H7 समानता, फ़ीचर/सर्वर F1 समानता, फ़ीचर अपस्ट्रीम, अपरिवर्तित मुख्य चेकआउट और साफ़ स्थिति साबित करें। एक अलग पुरानी-मुख्य प्रति में H7 को खोए बिना इनकार की भविष्यवाणी और निरीक्षण करें।
आपकी अपनी पुष्टि: साइट आपका कंप्यूटर नहीं देख सकती।
पाठ को पूरा करने के लिए आवश्यक प्रश्नों के सही उत्तर दें और व्यावहारिक अभ्यास की पुष्टि करें।
पुनर्कथन
- सटीक गंतव्य का निरीक्षण करें.
- केवल पीछे वाले वंशज को स्पष्ट रूप से एकीकृत करें।
- एक शाखा को बिना विलय किये प्रकाशित करें।
संबंधित
शब्दावली शब्द प्रस्तुत किये गये
धक्का - دفع; प्रकाशित शाखा - نشر فرع; अपस्ट्रीम - الفرع المتتبَّع; तेजी से आगे बढ़ना - تقديم سريع.
वीडियो प्रतिलेख
वीडियो का वर्णन, संकेत दर संकेत।
प्रतिलिपि दिखाएँ
- सटीक चौकी से प्रारंभ करें.
- शाखा का नाम, सूचकांक और कार्यशील संस्करण।
- केवल पृथक पाठ्यक्रम प्रति ही तैयार करें।
- सटीक स्रोत और गंतव्य का निरीक्षण करें.
- केवल तभी तेजी से आगे बढ़ें वंश इसकी अनुमति देता है।
- यदि वास्तविक शाखाएँ अलग हो गई हैं तो रुकें।
- मुख्य अब पहले से ही गंतव्य से मेल खाता है।
- नामित प्रकाशित करें सुविधा, हर शाखा नहीं.
- सुविधा के स्वयं के अपस्ट्रीम को सत्यापित करें.
- प्रकाशन सुविधा का विलय नहीं करता.
- मूल मुख्य को साफ़ छोड़ दें.
- F1 का प्रकाशन क्या करता है?
- यह उस नामित रेफरी को भेजता है, सभी कार्यशील फ़ाइलें नहीं.
- विहित सफलता के बाद कौन से तथ्य मान्य हैं?
- इसका पुश पहले से ही लगा हुआ था.
- फास्ट-फॉरवर्ड मेन/H6 से वंशज H7: नया मर्ज प्रतिबद्ध?
- रेफरी मौजूदा वंशज के पास चला जाता है।
- इनपुट बदलें: पुराने H6 को ऊपर धकेलें संरेखण से पहले सर्वर H7.
- मूलनिवासी H7 को संरक्षित करते हुए बाहर निकल गए1।
- पुश पहले से ही ऊपर कहता है दिनांक. क्या F1 प्रकाशित हो गया है?
- मेन का रिजल्ट कहता है दूसरे रेफरी के बारे में कुछ नहीं।
- कौन से अंतिम साक्ष्य की आवश्यकता है?
- प्रत्येक शाखा के लिए वास्तविक एसएचए की तुलना करें।
- वास्तविक परिणाम सत्यापित करें, सिर्फ एक संदेश नहीं.
- कार्य करने से पहले बदले हुए इनपुट का अनुमान लगाएं।
- पुनर्प्राप्ति से पहले उपयोगी कार्य सुरक्षित रखें.
- जारी रखने से पहले चेकपॉइंट साबित करें।
- सत्यापित परिणाम रखें अगले चरण के लिए.