पाठ 15 · रोजमर्रा का काम
फ़ाइलों पर ध्यान न दें और अनट्रैक किए गए कार्य को सुरक्षित रूप से साफ़ करें
पाठ्यक्रम को अनदेखा नीति के लिए प्रतिबद्ध करें, फिर पूर्वावलोकन करें और केवल एक डिस्पोजेबल अनट्रैक स्क्रैच फ़ाइल को हटा दें। नजरअंदाज किए गए बिल्ड आउटपुट, ट्रैक किए गए कार्य और पुनर्प्राप्ति दायरे को अलग रखें।
- स्तर: इंटरमीडिएट
- 8 मिनट पढ़ा
- 6 मिनट का वीडियो
- अद्यतन किया गया
- इस पाठ से पहले: किसी बदलाव का आकलन करने से पहले तुलना पढ़ें
प्रगति इस ब्राउज़र में सहेजी गई.
चलाने से YouTube से वीडियो लोड होता है (गोपनीयता-उन्नत मोड)।
आप क्या सीखेंगे
- नज़रअंदाज़ नियमों बनाम ट्रैक की गई फ़ाइलों की व्याख्या करें।
- एक संकीर्ण दायरे वाले साफ़ का पूर्वावलोकन करें।
- ऐप की सटीक निष्कासन सूची का निरीक्षण करें।
- ऐप स्नैपशॉट से मूल विलोपन को अलग करें।
शुरू करने से पहले
जहां पाठ 14 समाप्त हुआ वहां प्रारंभ करें: मुख्य/H7 साफ़, न्यूनतम .gitignore में केवल dist/ शामिल है, टैग v0.1.0 H7 पर तय किया गया है। वीडियो में एक जेनरेट किया गया dist/index.html जोड़ा गया है, जिसे नियम पहले से ही छिपा देता है।
वीडियो को Git 2.52.0 और GitTree 2.0 के साथ Ubuntu 24.04 पर रिकॉर्ड किया गया था: इग्नोर फ़ाइल, उसका कमिट, स्क्रैच फ़ाइल और क्लीन ऐप में किया गया था; पहले की स्थिति, पूर्वावलोकन और जाँचें टर्मिनल में चलती थीं, पूर्वावलोकन के लिए एक अलग प्रति के साथ। macOS या Windows पर कुछ भी नहीं चलाया गया, और Ubuntu ही एकमात्र Linux सिस्टम रिकॉर्ड किया गया है। GitTree का स्रोत Git फ़्लोर 2.39.0 है।
GitTree आपसे साइन इन करने के लिए कहता है; फिर नि:शुल्क योजना यहां हर चरण को कवर करती है। किसी प्रदाता खाते, प्रो/ट्रायल, एपीआई क्रेडेंशियल या इंटरनेट सेवा की आवश्यकता नहीं है। स्थानीय मूल उत्पत्ति GitLab या सीआई नहीं है। सभी पहचान example.com का उपयोग करती हैं; इस पाठ को कभी भी स्रोत चेकआउट के अंदर न चलाएँ।
समान इनपुट पर या तो GitTree या मूल पथ के माध्यम से उत्परिवर्तन करें, दोनों लगातार नहीं। केवल पढ़ने योग्य सत्यापन का पालन किया जा सकता है। टर्मिनल कार्य के रूप में वर्णित किसी भी तैयारी को मूल तैयारी का लेबल दिया जाता है, कभी भी एक आविष्कृत ऐप सुविधा नहीं।
अवधारणा और राज्य प्रभाव
नियमों की अनदेखी आम तौर पर ट्रैक न किए गए उम्मीदवारों को छिपा देती है; वे पहले से अनुक्रमित पथ पर नज़र रखना, इतिहास खंगालना या रहस्यों की रक्षा करना बंद नहीं करते हैं। किसी भी अन्य फ़ाइल की तरह साझा नीति प्रतिबद्ध करें।
एक क्लीन ऑपरेशन अपने दायरे में अनट्रैक किए गए रास्तों को हटा देता है। नेटिव गिट क्लीन में कोई अंतर्निहित पुनर्प्राप्ति स्नैपशॉट नहीं है; किसी ट्रैक न की गई फ़ाइल को हटाना सामान्य प्रतिबद्ध इतिहास से तब तक पुनर्प्राप्त नहीं किया जा सकता जब तक कि उसे अलग से संरक्षित न किया जाए।
GitTree की क्लीन अनट्रैक्ड फ़ाइलें... एक सटीक सूची बनाती है और हटाने से पहले सूचीबद्ध बाइट्स की सुरक्षा करती है। विकल्पों में उपेक्षित फ़ाइलें शामिल हैं और केवल उपेक्षित फ़ाइलें ही दायरा बदलती हैं और परस्पर अनन्य हैं। स्रोत सुरक्षा इस बात का प्रमाण नहीं है कि किसी विशेष पूर्ववत को रिकॉर्ड किया गया था।
.gitignore को सेव/कमिट करने से इंडेक्स/ट्री/मेन बदल जाता है। स्क्रैच साफ़ करने से केवल वह अनट्रैक डिस्क फ़ाइल हट जाती है; यह कोई कमिट नहीं करता है या रिमोट रेफरी को अपडेट नहीं करता है। इग्नोर डिस्ट डिफॉल्ट क्लीन विकल्पों के साथ रहता है।
सटीक प्रोजेक्ट स्थिति तैयार करें
केवल मूल पाठ्यक्रम भंडार का उपयोग करें। पहले पूर्ण IGNORE, स्टेज और कमिट सेव करें। फिर पूर्ण SCRATCH बनाएं; इसे जानबूझकर स्क्रैच से बाहर रखा गया है/इसलिए डिफ़ॉल्ट साफ़ सूची इसे दिखा सकती है। यदि मूल निष्कासन का अभ्यास कर रहे हैं तो डेमो के बाहर एक अलग प्रति सुरक्षित रखें।
पूर्ण फ़ाइल इनपुट
केवल नीचे नामित चरण पर ही सहेजें। ये अंतिम नई लाइन के साथ पूर्ण UTF-8/LF निकाय हैं; कभी भी मार्कडाउन बाड़ चिपकाएँ नहीं। अपरिवर्तित चलने योग्य फ़ाइलें नामित इनपुट प्राप्त करती हैं। अलग-अलग संस्करणों में मूल को अधिलेखित नहीं किया जाना चाहिए।
.gitignore - ध्यान न दें
node_modules/
dist/
coverage/
reports/
.course-cache/
*.log
scratch/course-scratch.txt - स्क्रैच
Disposable course scratch. No useful work.GitTree में
पैलेट: Command+Shift+P (Ubuntu पर Ctrl+Shift+P); सटीक नामित कमांड टाइप करें और उसका चयन करें। नामांकित-रेफ क्रियाएँ उस पंक्ति के संदर्भ मेनू का उपयोग करती हैं, तर्क-मुक्त पैलेट शॉर्टकट का नहीं।
- पैलेट Edit .gitignore… ".gitignore in gittree-features" खोलता है। Rules, one per line क्लिक करें, सभी का चयन करें, और संपूर्ण IGNORE बॉडी टाइप करें (या पेस्ट करें); Save. यह फ़ाइल लिखता है, कमिट नहीं। (संवाद में पथ के लिए Add Template और Why is this ignored? चेक भी है।)
- कार्य परिवर्तन दिखाएँ; समीक्षा .gitignore केवल, स्टेज फ़ाइल; सारांश कार्य: उत्पन्न पाठ्यक्रम फ़ाइलों को अनदेखा करें; 1 फ़ाइल में एक बार परिवर्तन करें।
- नई फ़ाइल… → course-scratch.txt → बनाएँ; सटीक SCRATCH सहेजें, कोई स्टेजिंग नहीं। पुष्टि करें कि यह ट्रैक नहीं किया गया है।
- नीचे मूल पथ-स्कोप्ड ड्राई-रन चलाएँ। यदि कोई भिन्न पथ सूचीबद्ध है, तो हटाने से पहले रुकें।
- पैलेट Clean Untracked Files… "गिटट्री-फीचर्स में अनट्रैक की गई फ़ाइलों को साफ़ करें?" खोलता है। इसमें लिखा है "1 फ़ाइल, 0 फ़ोल्डर्स (0 अनदेखा), 43 बी" और course-scratch.txt सूचीबद्ध करता है; सूची के नीचे यह कहा गया है कि किसी भी चीज़ को हटाने से पहले प्रत्येक सूचीबद्ध फ़ाइल का एक पुनर्प्राप्ति स्नैपशॉट refs/ogt/trash के अंतर्गत सहेजा जाता है, और यह पूर्ववत फ़ाइलों को वापस रख देता है जहां कुछ भी नया उनकी जगह नहीं लेता है।
- अनट्रैक किए गए फ़ोल्डरों को शामिल करें, नज़रअंदाज़ की गई फ़ाइलों को शामिल करें और केवल नज़रअंदाज की गई फ़ाइलों को बंद करें। अपेक्षित उम्मीदवार केवल course-scratch.txt है; उपयोगी कार्य दिखाई देने पर रद्द करें.
- एक बार 1 आइटम हटाएँ चुनें और वास्तविक परिणाम की प्रतीक्षा करें। ऐप पहले बाइट्स की सुरक्षा करता है; पूर्ववत करने का दावा करने से पहले उस साक्ष्य को पकड़ लें।
- साफ़ स्थिति सत्यापित करें और dist/index.html को अनदेखा कर दिया गया। दृश्य को सुंदर बनाने के लिए स्नैपशॉट न हटाएं या उपेक्षित सफ़ाई को सक्षम न करें।
प्रत्येक सामान्य प्रतिबद्धता के लिए: सारांश बताया गया विषय है; विवरण रिक्त; पिछली प्रतिबद्धता में संशोधन करें, हुक छोड़ें, हस्ताक्षरित-ऑफ-बाय, अलग लेखक जोड़ें, प्रतिबद्धता के बाद पुश करें और खाली प्रतिबद्धता को अनुमति दें; कोई सह-लेखक नहीं. केवल नामित फ़ाइलों को चरणबद्ध करें, फिर एक बार एन फ़ाइलों में परिवर्तन करें (एक के लिए फ़ाइल), या विकल्प के रूप में कमांड+एंटर करें। वास्तविक परिणाम की प्रतीक्षा करें. एक पाठ जो स्पष्ट रूप से संशोधन करता है वह केवल उस बताए गए विकल्प को बदलता है।
टर्मिनल में
पहले IGNORE को सेव करें; मूल प्रतिबद्ध विकल्प:
git add -- .gitignore
git commit --quiet -m "chore: ignore generated course files"
git check-ignore dist/index.htmlदेखा गया आउटपुट:
dist/index.htmlउस प्रतिबद्धता के बाद ही सटीक SCRATCH बनाएं, यदि आवश्यक हो तो इसे बाहरी रूप से संरक्षित करें, फिर:
git clean -n -- course-scratch.txtअवलोकन किया गया:
Would remove course-scratch.txtइस डिस्पोजेबल पथ की पुष्टि करने के बाद ही, मूल विकल्प (ऐप की सफलता के बाद नहीं):
git clean -f -- course-scratch.txt
git status --shortदेखा गया निष्कासन:
Removing course-scratch.txtस्थिति मौन है. यह मूल -f नामित डिस्पोज़ेबल फ़ाइल तक सीमित है, -fdx या व्यापक क्लीनअप तक नहीं। नेटिव गिट ने ऐप स्नैपशॉट नहीं बनाया। परिवर्तित-इनपुट नॉनम्यूटेटिंग पूर्वावलोकन, क्योंकि वे एक अलग प्रतिलिपि में चलते थे: git clean -n -X ने कुछ भी मुद्रित नहीं किया, क्योंकि बिना -d Git उपेक्षित dist/ फ़ोल्डर में प्रवेश नहीं करता है; git clean -n -x ने इसी कारण से केवल course-scratch.txt सूचीबद्ध किया है; git clean -n -x -- course-scratch.txt dist/index.html, जो दोनों पथों का नाम देता है, दोनों को सूचीबद्ध करता है। पथ का नामकरण करने से दायरा बढ़ता है। स्कोप्ड निष्कासन को कभी भी विस्तारित विनाशकारी रूप से न बदलें।
नतीजा
Where you end: मुख्य का कार्य है: जेनरेट की गई पाठ्यक्रम फ़ाइलों को अनदेखा करें, पूर्ण IGNORE के साथ I8 प्रतिबद्ध करें; स्पष्ट रूप से साफ़ होने के बाद course-scratch.txt अनुपस्थित, कार्य/सूचकांक साफ़, जिला अनदेखा, टैग/सर्वर रेफरी अपरिवर्तित।
सामान्य गलतियाँ
- यह मानते हुए कि उपेक्षित ट्रैक की गई फ़ाइलें इतिहास छोड़ देती हैं।
- दायरे की समीक्षा के बिना -x या ऐप द्वारा नजरअंदाज किए गए विकल्पों का उपयोग करना।
- उम्मीद है कि नेटिव क्लीन में ऐप पूर्ववत हो जाएगा।
अगर कुछ गलत होता है
यदि पूर्वावलोकन भिन्न हो तो रद्द करें. मूल निष्कासन को पुनर्स्थापित करने के लिए अलग संरक्षित फ़ाइल की आवश्यकता होती है; ऐप को पूर्ववत करना वास्तविक स्नैपशॉट/जर्नल और वर्तमान पथों पर निर्भर करता है, न कि किसी विलोपन को कवर करने वाले वादे पर।
अपनी समझ की जाँच करें
प्रत्येक प्रश्न का उत्तर दें, फिर क्यों पढ़ें। "आवश्यक" चिह्नित प्रश्न पाठ को पूरा करने में गिने जाते हैं।
6 में से 0 सही
पाठ को पूरा करने के लिए आवश्यक प्रश्नों के सही उत्तर दें।
इस ब्राउज़र में चेक किया गया.
अभ्यास करें
सत्यापित करें कि IGNORE प्रतिबद्ध है, स्क्रैच अनुपस्थित है और Dist को अनदेखा किया गया है। केवल एक अलग पूर्वावलोकन में, अनुमान लगाएं कि कौन से उपेक्षित उम्मीदवार -X बनाम -x के साथ दिखाई देंगे, उन्हें हटाए बिना।
आपकी अपनी पुष्टि: साइट आपका कंप्यूटर नहीं देख सकती।
पाठ को पूरा करने के लिए आवश्यक प्रश्नों के सही उत्तर दें और व्यावहारिक अभ्यास की पुष्टि करें।
पुनर्कथन
- नज़रअंदाज़ करना अनट्रैकिंग नहीं है.
- स्वच्छ दायरा स्पष्ट है.
- पुनर्प्राप्ति संरक्षित बाइट्स पर निर्भर करती है।
संबंधित
शब्दावली शब्द प्रस्तुत किये गये
नज़रअंदाज़ करें - تجاهُل; साफ़ - साफ़; अनट्रैक्ड - غير متتبَّع; पुनर्प्राप्ति स्नैपशॉट - لقطة استعادة.
वीडियो प्रतिलेख
वीडियो का वर्णन, संकेत दर संकेत।
प्रतिलिपि दिखाएँ
- सटीक चौकी से प्रारंभ करें.
- शाखा का नाम, सूचकांक और कार्यशील संस्करण।
- केवल पृथक पाठ्यक्रम प्रति ही तैयार करें।
- सटीक साझा उपेक्षा नीति सहेजें।
- केवल अनदेखा फ़ाइल प्रतिबद्ध करें।
- स्क्रैच फ़ाइल रखें जानबूझकर अनट्रैक किया गया।
- पहले सटीक नामित पथ का पूर्वावलोकन करें.
- प्रत्येक निष्कासन उम्मीदवार को पढ़ें।
- स्वच्छ विकल्पों का विस्तार न करें.
- केवल डिस्पोज़ेबल फ़ाइल हटाएँ।
- सत्यापित करें कि क्या यथावत रहा साथ ही क्या गायब हो गया.
- क्या अनदेखा करने से ट्रैक किया गया इतिहास मिट जाता है?
- नियम अनट्रैक किए गए उम्मीदवारों को छिपाते हैं; वे इतिहास दोबारा नहीं लिखते.
- स्कोप्ड क्लीन के बाद क्या बचता है?
- केवल नामित अनट्रैक स्क्रैच इन विकल्पों के साथ हटा दिया जाता है.
- क्या सफ़ाई एक नई प्रतिबद्धता बनाती है?
- ऑपरेशन डिस्क को हटा देता है सूचकांक के बाहर बाइट्स.
- शामिल करने के लिए इनपुट बदलें उपेक्षित फ़ाइलें: दायरा?
- विस्तारित विकल्प उम्मीदवारों को बदलते हैं; कार्य करने से पहले पुनः पूर्वावलोकन करें.
- देशी स्वच्छ भागा। क्या ऐप पूर्ववत होने की गारंटी है?
- नेटिव क्लीन नंबर GitTree बनाता है जर्नल या अनट्रैक्ड-सामग्री बैकअप।
- इरादा साफ़ साबित क्या होता है?
- हटाए गए और संरक्षित किए गए दोनों की जाँच करें नामित प्रश्नों के साथ बताएं।
- वास्तविक परिणाम सत्यापित करें, सिर्फ एक संदेश नहीं.
- कार्य करने से पहले बदले हुए इनपुट का अनुमान लगाएं।
- पुनर्प्राप्ति से पहले उपयोगी कार्य सुरक्षित रखें.
- जारी रखने से पहले चेकपॉइंट साबित करें।
- सत्यापित परिणाम रखें अगले चरण के लिए.