0

गिटिग्नोर परीक्षक

यह देखने के लिए अपने .gitignore नियम और फ़ाइल पथों की एक सूची चिपकाएँ कि कौन सी फ़ाइलों को अनदेखा किया गया है, किस सटीक नियम और रेखा द्वारा, और कौन से निषेध नियम चुपचाप मृत हैं क्योंकि मूल निर्देशिका को पहले ही अनदेखा कर दिया गया है।

Buy Me a Coffee at ko-fi.com
प्रसंस्करण... 0%
पार्सिंग .gitignore नियम
मिलान फ़ाइल पथ
हो गया

नतीजा

"मेरा .gitignore निषेध काम क्यों नहीं करता?" सबसे आम गिट प्रश्नों में से एक है, और ईमानदार उत्तर लगभग हमेशा एक ही होता है: एक `! पैटर्न` एक निर्देशिका के अंदर एक फ़ाइल को फिर से शामिल करने की कोशिश कर रहा है जिसे पहले से ही बाहर रखा गया नियम कभी काम नहीं कर सकता है, क्योंकि गिट उपेक्षित निर्देशिकाओं में उनके अंदर कुछ भी फिर से जांचने के लिए नहीं उतरता है। यह उपकरण गिट के वास्तविक .gitignore मिलान एल्गोरिदम को पुन: कार्यान्वित करता है - अनुमान नहीं - विशेष रूप से ताकि यह उस सटीक स्थिति को पकड़ सके और समझा सके, साथ ही गिट द्वारा समर्थित हर दूसरे पैटर्न नियम के साथ।

अपने .gitignore नियमों को एक बॉक्स में और फ़ाइल पथों की एक सूची (प्रति पंक्ति एक, जैसे `dist/index.js`, `node_modules/foo/bar.js`, या `.env`) को दूसरे बॉक्स में चिपकाएँ, और टूल प्रत्येक पथ का ठीक उसी तरह मूल्यांकन करता है जिस तरह git करता है: टिप्पणियाँ और रिक्त पंक्तियाँ छोड़ दी जाती हैं, अनुगामी रिक्त स्थान हटा दिए जाते हैं जब तक कि बच न जाएं, एक अग्रणी `!` एक नियम को अस्वीकार करता है, एक अग्रणी `/` इसे किसी भी गहराई पर मेल करने देने के बजाय इसे जड़ से जोड़ देता है, एक अनुगामी `/` इसे निर्देशिकाओं तक सीमित कर देता है, और `*`, `?`, `[abc]` वर्ण वर्ग और `**` (निर्देशिका सीमाओं से मेल खाते हुए) सभी दस्तावेज़ित ग्लोब नियमों के अनुसार काम करते हैं।

गंभीर रूप से, पथों को रूट से नीचे तक निर्देशिका द्वारा निर्देशिका की जांच की जाती है, उसी तरह गिट का स्वयं का अनदेखा इंजन काम करता है - अलगाव में प्रत्येक नियम के खिलाफ पूर्ण पथ का परीक्षण करके नहीं। यही कारण है कि डेड-नेगेशन मामले का सही ढंग से पता लगाना संभव हो जाता है: यदि `dist/` को लाइन 3 पर नजरअंदाज कर दिया जाता है और बाद में `!dist/keep.js` इसके अंदर एक फ़ाइल को बचाने की कोशिश करता है, तो यह टूल `dist/keep.js` को अभी भी नजरअंदाज किए जाने की रिपोर्ट करता है, लाइन -3 नियम को कारण के रूप में नामित करता है, और अलग से नकार को छायांकित के रूप में चिह्नित करता है बजाय चुपचाप दिखावा करने के कि यह काम कर रहा है।

परिणाम तालिका प्रत्येक परीक्षण किए गए पथ को एक स्पष्ट हां/नहीं उपेक्षित निर्णय, सटीक नियम पाठ और पंक्ति संख्या के साथ अपनी पंक्ति देती है जिसने इसे तय किया, और - जब भी प्रासंगिक हो - छायांकित निषेध या विरासत में मिले मूल-निर्देशिका नियम की व्याख्या करने वाला एक सादा-भाषा नोट। यही वह विवरण है जो एक भ्रामक .gitignore को एक ऐसी चीज़ में बदल देता है जिसके बारे में आप प्रतिबद्ध होने से पहले वास्तव में तर्क कर सकते हैं।