मैं भंडार की वर्तमान स्थिति से कई फाइलें निकालना चाहता हूं। हालाँकि, मैं चाहता हूं कि फाइलें पहले के इतिहास में मौजूद हों।
कैसे forget
और क्या करना है remove
, और क्या वे कर सकते हैं जो मुझे चाहिए?
मैं भंडार की वर्तमान स्थिति से कई फाइलें निकालना चाहता हूं। हालाँकि, मैं चाहता हूं कि फाइलें पहले के इतिहास में मौजूद हों।
कैसे forget
और क्या करना है remove
, और क्या वे कर सकते हैं जो मुझे चाहिए?
जवाबों:
' hg forget
' ' ' शॉर्टहैंड फॉर ' hg remove -Af
' है। ' hg remove
' सहायता से:
... और -एफ़ का उपयोग अगले रीविजन से फ़ाइलों को हटाने के लिए किया जा सकता है, उन्हें कार्यशील निर्देशिका से हटाए बिना।
नीचे पंक्ति: ' remove
' डिस्क पर आपकी कार्यशील प्रतिलिपि से फ़ाइल को हटा देता है (जब तक आप उपयोग नहीं करते -Af
) और ' forget
' नहीं करता।
डाल करने के लिए सबसे अच्छा तरीका यह है कि hg forget
है समान करने के लिए hg remove
सिवाय कि इसमें पीछे फ़ाइलों को छोड़ देता है अपने काम करने की नकल। फ़ाइलों को बिना फ़ाइल के पीछे छोड़ दिया जाता है और अब वैकल्पिक रूप से इसमें एक पैटर्न के साथ अनदेखा किया जा सकता है .hgignore
।
दूसरे शब्दों में, मैं नहीं बता सकता कि आपने उपयोग किया है hg forget
या hg remove
जब मैं आपसे खींचता हूं। एक फ़ाइल है कि आप दौड़ा hg forget
पर होगा जैसे कि आपने इस्तेमाल किया था - जब मुझे लगता है कि changeset के लिए अद्यतन हटा दिया hg remove
बजाय।
प्रलेखन से, आप प्रोजेक्ट इतिहास में फ़ाइल रखने के लिए जाहिरा तौर पर कमांड का उपयोग कर सकते हैं। ऐसा लगता है कि आप हटाना चाहते हैं, क्योंकि यह फ़ाइल को कार्यशील निर्देशिका से हटा भी देता है।
Http://hgbook.red-bean.com/read/ पर Mercurial पुस्तक से :
किसी फ़ाइल को निकालने से उसके इतिहास पर कोई असर नहीं पड़ता है। यह समझना महत्वपूर्ण है कि किसी फ़ाइल को हटाने के केवल दो प्रभाव हैं। यह कार्यशील निर्देशिका से फ़ाइल का वर्तमान संस्करण निकालता है। यह मर्क्यूरियल को अगले बदलाव के समय से फ़ाइल में परिवर्तन पर रोक लगाता है। किसी फ़ाइल को हटाने से किसी भी तरह से फ़ाइल के इतिहास में परिवर्तन नहीं होता है।
मैन पेज hg (1) यह भूल जाने के बारे में कहता है:
निर्दिष्ट फ़ाइलों को चिह्नित करें ताकि वे अगले प्रतिबद्ध होने के बाद ट्रैक नहीं किए जाएंगे। यह केवल वर्तमान शाखा से फ़ाइलों को हटाता है, न कि पूरे प्रोजेक्ट इतिहास से, और यह उन्हें कार्यशील निर्देशिका से हटाता नहीं है।
और इसे हटाने के बारे में:
रिपॉजिटरी से हटाने के लिए संकेतित फ़ाइलों को शेड्यूल करें। यह केवल वर्तमान शाखा से फाइलें निकालता है, न कि पूरे प्रोजेक्ट इतिहास से।
यदि आप "hg remove b"
"A" स्टेटस वाली फाइल के खिलाफ उपयोग करते हैं , जिसका अर्थ है कि इसे जोड़ा गया है लेकिन कमिट नहीं किया गया है, तो Mercurial जवाब देगा:
not removing b: file has been marked for add (use forget to undo)
यह प्रतिक्रिया हटाने और भूलने के बीच के अंतर का एक बहुत स्पष्ट अन्वेषण है।
मेरी समझ यह है कि "hg forget"
एक जोड़ा को पूर्ववत करने के लिए है, लेकिन प्रतिबद्ध फ़ाइल नहीं है ताकि यह संस्करण नियंत्रण द्वारा ट्रैक न हो; जबकि "hg remove"
संस्करण नियंत्रण से एक प्रतिबद्ध फ़ाइल निकालने के लिए है।
इस धागे में hg remove
7 विभिन्न प्रकार की स्थिति की फ़ाइलों के खिलाफ उपयोग करने के लिए एक उदाहरण है ।
किसी फ़ाइल को ट्रैक किया जा सकता है या नहीं, आप किसी फ़ाइल को ट्रैक करने के लिए hg ऐड का उपयोग करते हैं और hg को हटाते हैं या hg इसे अन-ट्रैक करना भूल जाते हैं। बिना झंडे के hg हटाने का उपयोग करने से फ़ाइल को हटा दिया जाएगा और इसे ट्रैक नहीं किया जा सकता है, hg भूलने के बिना इसे हटाए बिना बस इसे ट्रैक कर देगा।