मुझे hg forget
समझने में कठिनाई हो रही है। क्या यह git rm --cached
जैसा ही है? यानी अगली प्रतिबद्धता के साथ फ़ाइल को हटा देंगे और इसे ट्रैक करना बंद कर देंगे?`gg rm --cached` के समान 'hg भूल' है?
उत्तर
hg forget
फ़ाइल को ट्रैक करना बंद करने के लिए Mercurial बताता है, लेकिन आपकी कार्यशील निर्देशिका में फ़ाइल को परिवर्तित नहीं करता है।
आपकी प्रतिबद्धता के बाद यह व्यवहार करेगा जैसे आपने hg add
(हालांकि निश्चित रूप से इतिहास अभी भी मौजूद होगा)। नए क्लोन में उनके कामकाजी डीआईआर में वह फ़ाइल नहीं होगी, लेकिन यह आपके कामकाजी डीआईआर में नहीं हटाई जाएगी।
यदि आप वर्किंगडियर/मेनिफेस्ट में कोई फ़ाइल रखना चाहते हैं, लेकिन भविष्य में परिवर्तनों को अनदेखा करना चाहते हैं, तो ऐसा करने का कोई आसान तरीका नहीं है (क्योंकि इसे आम तौर पर एक बुरा विचार माना जाता है), हालांकि आप चीजों को अलिया करके इसे नकली बना सकते हैं पर hg commit
पर उपयोग करें।
ऐसा करने का बेहतर तरीका रेपो में इच्छित फ़ाइल का नमूना करना है, लेकिन जिनके परिवर्तनों को आप अनदेखा करना चाहते हैं और फिर अपने निर्माण प्रणाली (या आपके निर्देश) को अपने गैर-नमूना स्थान पर कॉपी करें। उदाहरण के लिए एक फ़ाइल config-file.sample
है जिसे रेपो में ट्रैक किया गया है, और फिर मौजूद नहीं है तो सेटअप/स्थापना/बिल्ड cp config-file.sample config-file
करें। अपने .hgignore
में config-file
शामिल करें ताकि यह गलती से जोड़ा नहीं जा सके। यह आपको एक ट्रैक की गई बेसलाइन देता है लेकिन आपके स्थानीय अनुकूलन को कम करने और धक्का देने का जोखिम नहीं उठाता है। डेटाबेस मोड जैसे चीजों के लिए यह आमतौर पर किया जाता है।
मुझे लगता है कि जीआईटी आरएम - कैश एचजी आरएम की तरह है - – tonfa
लेकिन यह अगले प्रतिबद्धता और आगे से हटा दिया जाएगा? जिस तरह से आप इसका वर्णन करते हैं, वह वही है जहां मेरा भ्रम आता है। ट्रैकिंग बंद कर देता है: क्या इसका मतलब है कि भविष्य में परिवर्तनों को अनदेखा कर दिया जाएगा या क्या मैनिफेस्ट से हटाए गए मेनिफेस्ट – knittl
से फ़ाइल हटा दी जाएगी। जैसा कि मेरे बयान से प्रमाणित है "नए क्लोनों में उनके कामकाजी डीआईआर में वह फाइल नहीं होगी"। –
शायद यहां स्वीकृत उत्तर आपको मदद करता है: http://stackoverflow.com/questions/1101167/what-is-the-difference-between-hg-forget-and-hg-remove – ZeissS