सामग्री पर जाएं
GitTree

पाठ 14 · रोजमर्रा का काम

टैग, एनोटेशन और रिलीज़ नामकरण

निरीक्षण किए गए मुख्य कमिट पर एक एनोटेटेड v0.1.0 बनाएं और केवल उस टैग को स्थानीय मूल पर पुश करें। किसी टैग ऑब्जेक्ट को शाखा, हस्ताक्षर और होस्टेड रिलीज़ से अलग करें।

प्रगति इस ब्राउज़र में सहेजी गई.

चलाने से YouTube से वीडियो लोड होता है (गोपनीयता-उन्नत मोड)।

अंग्रेजी कथन · English and Arabic कैप्शन

वीडियो पेज खोलेंयूट्यूब पर देखें

आप क्या सीखेंगे

  • एक सुविचारित संदेश के साथ एक एनोटेटेड टैग बनाएं।
  • टैग ऑब्जेक्ट और पील कमिट को अलग से सत्यापित करें।
  • ऑल-टैग प्रकाशन के बिना एक स्पष्ट टैग पुश करें।
  • टैग निर्माण को होस्ट की गई रिलीज़ से अलग रखें।

शुरू करने से पहले

जहां पाठ 13 समाप्त हुआ वहां प्रारंभ करें: मुख्य/H7 साफ़, सर्वर मुख्य H7, F1 पर प्रकाशित सुविधा; कोई v0.1.0 टैग मौजूद नहीं है. स्थानीय डेमो टैग पर हस्ताक्षर करने का स्पष्ट रूप से अनुरोध नहीं किया गया है।

वीडियो को Git 2.52.0 और GitTree 2.0 के साथ Ubuntu 24.04 पर रिकॉर्ड किया गया था: टैग बनाया गया था और ऐप में डाला गया था; पहले की स्थिति, अस्वीकृत डुप्लिकेट नाम और चेक टर्मिनल में चले। macOS या Windows पर कुछ भी नहीं चलाया गया, और Ubuntu ही एकमात्र Linux सिस्टम रिकॉर्ड किया गया है। GitTree का स्रोत Git फ़्लोर 2.39.0 है।

GitTree आपसे साइन इन करने के लिए कहता है; फिर नि:शुल्क योजना यहां हर चरण को कवर करती है। किसी प्रदाता खाते, प्रो/ट्रायल, एपीआई क्रेडेंशियल या इंटरनेट सेवा की आवश्यकता नहीं है। स्थानीय मूल उत्पत्ति GitLab या सीआई नहीं है। सभी पहचान example.com का उपयोग करती हैं; इस पाठ को कभी भी स्रोत चेकआउट के अंदर न चलाएँ।

समान इनपुट पर या तो GitTree या मूल पथ के माध्यम से उत्परिवर्तन करें, दोनों लगातार नहीं। केवल पढ़ने योग्य सत्यापन का पालन किया जा सकता है। टर्मिनल कार्य के रूप में वर्णित किसी भी तैयारी को मूल तैयारी का लेबल दिया जाता है, कभी भी एक आविष्कृत ऐप सुविधा नहीं।

अवधारणा और राज्य प्रभाव

एक शाखा आम तौर पर प्रतिबद्धताओं के साथ आगे बढ़ती है; रिलीज़ टैग एक जानबूझकर स्थिर नाम है। एक हल्का टैग किसी वस्तु को सीधे नाम देता है; एक एनोटेटेड टैग अपना स्वयं का टैग ऑब्जेक्ट, टैगर और संदेश जोड़ता है।

v0.1.0 यहां एक टैग ऑब्जेक्ट को नाम देता है। v0.1.0^{} इसे कमिट में ले जाता है। उन दो परतों के लिए अलग-अलग ऑब्जेक्ट आईडी अपेक्षित हैं और दो रिलीज़ का संकेत नहीं देते हैं।

एनोटेशन एक क्रिप्टोग्राफ़िक हस्ताक्षर नहीं है. Git टैग प्रकाशित करना प्रदाता रिलीज़ नोट्स नहीं बना रहा है, संपत्ति अपलोड नहीं कर रहा है या डेस्कटॉप रिलीज़ वितरित नहीं कर रहा है। इनमें से कोई भी बाह्य क्रिया यहाँ नहीं की जाती।

refs/tags/v0.1.0 और एक टैग ऑब्जेक्ट जोड़ें; पुश उस चयनित सर्वर टैग को जोड़ता है। HEAD, स्थानीय शाखाएँ, अनुक्रमणिका और कार्यशील फ़ाइलें हिलती नहीं हैं।

सटीक प्रोजेक्ट स्थिति तैयार करें

पाठ 13 के बाद मूल मुख्य का उपयोग करें। वास्तविक H7 SHA का निरीक्षण करें और इसे बनाने से पहले सत्यापित करें कि टैग अनुपस्थित है। टैग करने के बाद नोटबुक कमिट न जोड़ें.

GitTree में

पैलेट: Command+Shift+P (Ubuntu पर Ctrl+Shift+P); सटीक नामित कमांड टाइप करें और उसका चयन करें। नामांकित-रेफ क्रियाएँ उस पंक्ति के संदर्भ मेनू का उपयोग करती हैं, तर्क-मुक्त पैलेट शॉर्टकट का नहीं।

  1. वास्तविक मुख्य/H7 ग्राफ़ पंक्ति का चयन करें (दस्तावेज़: लियो की समीक्षा अनुस्मारक जोड़ें); इसके पादलेख परिवर्तन और पहचान की पुष्टि करें, फिर उस पर राइट-क्लिक करें।
  2. Tag Here खोलें और Create Annotated Tag Here… चुनें (पंक्ति के मेनू में एक सादा Create Tag Here… भी सूचीबद्ध है, जो एक हल्का टैग बनाता है)। संवाद का शीर्षक "कमिट की संक्षिप्त आईडी पर एक एनोटेटेड टैग बनाएं" है।
  3. टैग नाम v0.1.0 और संदेश पहले प्रयोग करने योग्य सेट करें GitTree फीचर कोर्स चेकपॉइंट।
  4. Signing के अंतर्गत विकल्प हैं Git कॉन्फिग का पालन करें, इस टैग पर हस्ताक्षर करें और Don’t sign this tag; संवाद नोट करता है कि Git कॉन्फिग टैग पर हस्ताक्षर नहीं करता है (tag.gpgSign सेट नहीं है)। इस स्पष्ट अहस्ताक्षरित पाठ के लिए इस टैग पर हस्ताक्षर न करें का चयन करें; वैश्विक हस्ताक्षर कॉन्फ़िगरेशन न बदलें.
  5. एक बार क्रिएट टैग पर क्लिक करें और प्रतीक्षा करें; चेकआउट बदले बिना इच्छित प्रतिबद्धता को v0.1.0 लेबल की पुष्टि करें।
  6. साइड पैनल के Tags समूह में, राइट-क्लिक करें v0.1.0 → Push Tag (वही मेनू टैग हटाएं... और रिमोट से टैग हटाएं... की भी पेशकश करता है, जिसका यह पाठ उपयोग नहीं करता है)। नोटिस में लिखा है, "पुश टैग v0.1.0।"
  7. मूल टैग ऑब्जेक्ट प्रकार, संदेश और खुली प्रतिबद्धता प्लस सर्वर टैग पहचान सत्यापित करें; हस्ताक्षर के साथ एनोटेशन को भ्रमित न करें।
  8. मुख्य को साफ़ और टैग को अपरिवर्तित छोड़ दें। पुश ऑल टैग का उपयोग न करें या प्रदाता रिलीज़ न बनाएं।

प्रत्येक सामान्य प्रतिबद्धता के लिए: सारांश बताया गया विषय है; विवरण रिक्त; पिछली प्रतिबद्धता में संशोधन करें, हुक छोड़ें, हस्ताक्षरित-ऑफ-बाय, अलग लेखक जोड़ें, प्रतिबद्धता के बाद पुश करें और खाली प्रतिबद्धता को अनुमति दें; कोई सह-लेखक नहीं. केवल नामित फ़ाइलों को चरणबद्ध करें, फिर एक बार एन फ़ाइलों में परिवर्तन करें (एक के लिए फ़ाइल), या विकल्प के रूप में कमांड+एंटर करें। वास्तविक परिणाम की प्रतीक्षा करें. एक पाठ जो स्पष्ट रूप से संशोधन करता है वह केवल उस बताए गए विकल्प को बदलता है।

टर्मिनल में

स्वच्छ मुख्य पर मूल समकक्ष:

Command · bash
git tag --annotate --no-sign v0.1.0 --message "First usable GitTree Features course checkpoint"
git cat-file -t v0.1.0
git for-each-ref --format='%(contents:subject)' refs/tags/v0.1.0
git rev-parse 'v0.1.0^{}'
git push --quiet origin refs/tags/v0.1.0
git ls-remote --tags origin refs/tags/v0.1.0 'refs/tags/v0.1.0^{}'
git status --short

--annotate का संक्षिप्त रूप -a (git tag -a v0.1.0 -m "message") है, और --message का रूप -m है; किसी भी तरह से हल्के वजन वाले git tag v0.1.0 के विपरीत, Git एक टैग ऑब्जेक्ट को अपने संदेश के साथ संग्रहीत करता है।

सफल बनाएं/पुश करें; प्रकार और संदेश आउटपुट:

आउटपुट
tag
First usable GitTree Features course checkpoint

छिला हुआ SHA वास्तविक मुख्य के बराबर होता है। एलएस-रिमोट वास्तविक टैग-ऑब्जेक्ट और पील-कमिट आईडी लौटाता है; इन परिवर्तनीय मानों को रिकॉर्ड करें, मॉडल लेबल को नहीं। अंतिम स्थिति रिक्त है. अलग डुप्लिकेट-नाम प्रयास:

Command · bash
git tag v0.1.0

वास्तविक stderr, निकास 128:

आउटपुट
fatal: tag 'v0.1.0' already exists

मूल टैग बना हुआ है; टकराव को छुपाने के लिए कभी भी -f का उपयोग न करें।

नतीजा

Where you end: एनोटेटेड v0.1.0 स्थानीय रूप से और स्थानीय नंगे मूल पर मौजूद है, संदेश पहले प्रयोग करने योग्य है GitTree फीचर कोर्स चेकपॉइंट, खुली प्रतिबद्धता H7। मुख्य/सिर/सूचकांक/कार्य अपरिवर्तित; किसी होस्ट की गई रिलीज़ या हस्ताक्षर का दावा नहीं किया गया।

सामान्य गलतियाँ

  • हस्ताक्षरित एनोटेटेड टैग को कॉल करना।
  • मुख्य के स्थान पर चयनित पुरानी पंक्ति को टैग करना।
  • प्रत्येक स्थानीय टैग को अनजाने में धकेलना।

अगर कुछ गलत होता है

पुष्टि करने से पहले गलत रचना को रद्द करें। यदि कोई स्थानीय टैग गलत है, तो उसके वास्तविक लक्ष्य का निरीक्षण करें और क्या इसे किसी स्पष्ट विलोपन से पहले प्रकाशित किया गया था; मूल डुप्लिकेट इनकार मौजूदा रेफरी को सुरक्षित रखता है।

अपनी समझ की जाँच करें

प्रत्येक प्रश्न का उत्तर दें, फिर क्यों पढ़ें। "आवश्यक" चिह्नित प्रश्न पाठ को पूरा करने में गिने जाते हैं।

  1. प्रश्न 1 में से 6

    यहाँ v0.1.0 क्या है?

    एक उत्तर चुनें.

  2. प्रश्न 2 में से 6

    कौन से दावे उचित हैं?

    लागू होने वाला प्रत्येक उत्तर चुनें.

  3. प्रश्न 3 में से 6
    आवश्यक

    क्या टैगिंग से एक और मुख्य प्रतिबद्धता बनती है?

    एक उत्तर चुनें.

  4. प्रश्न 4 में से 6
    आवश्यक

    बिना किसी दबाव के उसी नाम का पुन: उपयोग करें: परिणाम?

    एक उत्तर चुनें.

  5. प्रश्न 5 में से 6

    टैग और मुख्य आईडी भिन्न हैं: भ्रष्ट?

    एक उत्तर चुनें.

  6. प्रश्न 6 में से 6
    आवश्यक

    परिणाम क्या सिद्ध करता है?

    लागू होने वाला प्रत्येक उत्तर चुनें.

6 में से 0 सही

पाठ को पूरा करने के लिए आवश्यक प्रश्नों के सही उत्तर दें।

इस ब्राउज़र में चेक किया गया.

अभ्यास करें

ऑब्जेक्ट प्रकार टैग, सटीक एनोटेशन, खुली SHA=मुख्य और दोनों सर्वर टैग परतें सत्यापित करें। पहले टैग को संरक्षित करते हुए डुप्लिकेट इनकार की भविष्यवाणी करें और काम साफ़ करें।

आपकी अपनी पुष्टि: साइट आपका कंप्यूटर नहीं देख सकती।

पाठ को पूरा करने के लिए आवश्यक प्रश्नों के सही उत्तर दें और व्यावहारिक अभ्यास की पुष्टि करें।

पुनर्कथन

  • एनोटेशन एक टैग ऑब्जेक्ट जोड़ता है।
  • केवल चुने गए टैग को पुश करें.
  • Git टैग और होस्टेड रिलीज़ अलग-अलग हैं।

शब्दावली शब्द प्रस्तुत किये गये

एनोटेटेड टैग - وسم مشروح; हल्के वजन का टैग - وسم خفيف; टैगर - منشئ الوسم; छिला हुआ कमिट - الإيداع المحسوم.

वीडियो प्रतिलेख

वीडियो का वर्णन, संकेत दर संकेत।

प्रतिलिपि दिखाएँ
  1. सटीक चौकी से प्रारंभ करें.
  2. शाखा का नाम, सूचकांक और कार्यशील संस्करण।
  3. केवल पृथक पाठ्यक्रम प्रति ही तैयार करें।
  4. टैग करने से पहले सटीक कमिट चुनें.
  5. उस कमिट पर एक एनोटेटेड टैग बनाएं।
  6. नाम और सार्थक टिप्पणी लिखें.
  7. एनोटेशन का मतलब नहीं है क्रिप्टोग्राफ़िक हस्ताक्षर.
  8. एक टैग आपकी शाखा को स्विच नहीं करता है.
  9. केवल नामित टैग को पुश करें.
  10. इसकी प्रतिबद्धता को सत्यापित करने के लिए टैग को छीलें।
  11. होस्टेड रिलीज़ का आविष्कार न करें.
  12. यहाँ v0.1.0 क्या है?
  13. सत्यापित वस्तु प्रकार है टैग करें और यह मुख्य की ओर खुल जाता है।
  14. कौन से दावे उचित हैं?
  15. अहस्ताक्षरित एनोटेशन जोड़ता है मेटाडेटा लेकिन सिर नहीं हिलाता।
  16. क्या टैगिंग से एक और मुख्य प्रतिबद्धता बनती है?
  17. टैग रेफरी/ऑब्जेक्ट पॉइंट किसी मौजूदा प्रतिबद्धता के लिए.
  18. बिना किसी दबाव के उसी नाम का पुन: उपयोग करें: परिणाम?
  19. मापा डुप्लिकेट प्रयास Exit128 और टैग को सुरक्षित रखा।
  20. टैग और मुख्य आईडी भिन्न हैं: भ्रष्ट?
  21. एक एनोटेटेड टैग का अपना ऑब्जेक्ट अपने प्रतिबद्ध लक्ष्य से भिन्न है।
  22. परिणाम क्या सिद्ध करता है?
  23. दोनों ऑब्जेक्ट परतों को पढ़ें और वास्तविक चुना गया सर्वर रेफरी।
  24. वास्तविक परिणाम सत्यापित करें, सिर्फ एक संदेश नहीं.
  25. कार्य करने से पहले बदले हुए इनपुट का अनुमान लगाएं।
  26. पुनर्प्राप्ति से पहले उपयोगी कार्य सुरक्षित रखें.
  27. जारी रखने से पहले चेकपॉइंट साबित करें।
  28. सत्यापित परिणाम रखें अगले चरण के लिए.