एचजी भूलना और एचजी निकालना के बीच अंतर क्या है?


313

मैं भंडार की वर्तमान स्थिति से कई फाइलें निकालना चाहता हूं। हालाँकि, मैं चाहता हूं कि फाइलें पहले के इतिहास में मौजूद हों।

कैसे forgetऔर क्या करना है remove, और क्या वे कर सकते हैं जो मुझे चाहिए?


27
चिंता मत करो, आप Mercurial में पूर्व इतिहास से एक फ़ाइल नहीं निकाल सकते हैं - इतिहास आम तौर पर अपरिवर्तनीय है जब तक आप एक्सटेंशन का उपयोग करना शुरू नहीं करते हैं।
मार्टिन गिस्लर

जवाबों:


348

' hg forget' ' ' शॉर्टहैंड फॉर ' hg remove -Af' है। ' hg remove' सहायता से:

... और -एफ़ का उपयोग अगले रीविजन से फ़ाइलों को हटाने के लिए किया जा सकता है, उन्हें कार्यशील निर्देशिका से हटाए बिना।

नीचे पंक्ति: ' remove' डिस्क पर आपकी कार्यशील प्रतिलिपि से फ़ाइल को हटा देता है (जब तक आप उपयोग नहीं करते -Af) और ' forget' नहीं करता।


7
"hg भूलना" Mercurial 1.3 में "hg remove -Af" करने के लिए एक आसान तरीका के रूप में फिर से पेश किया गया है। यह फ़ाइल को हटाने के लिए शेड्यूल करता है, इसे काम की प्रतिलिपि से हटाए बिना।
मार्टिन गिस्लेर

5
सुन के अच्छा लगा। 'Remove -Af' (और 'remove' हेल्प पेज पर विकल्पों की पूरी तालिका) / पागलपन था।
Ry4an Brase

32
@ Ry4an: सच में, यह हास्यास्पद था। मैंने उस पैच का योगदान दिया जो 'भूल जाओ' को फिर से प्रस्तुत करता है। जब मैं इसे बना रहा था तो मुझे एहसास हुआ कि -अफ कोड में पूरी तरह से समझ में आता है, लेकिन उपयोगकर्ता के दृष्टिकोण से यह पूरी तरह से हास्यास्पद था।
स्टीव लूश जूल 17'09

10
हेह, यह वही है जो व्यापारिक वस्तुओं के बारे में बहुत अच्छा है - लोग सक्रिय रूप से और इसके बारे में सोच रहे हैं कि उपयोगकर्ता के दृष्टिकोण से क्या मतलब है। उस एक को ठीक करने के लिए धन्यवाद।
Ry4an Brase

9
स्थानीय बिल्ड कॉन्फ़िगरेशन फ़ाइल या पसंद है? स्थानीय उपकरणों के लिए पथ जो सिस्टम से सिस्टम में भिन्न होते हैं? गलती से एक लॉग फ़ाइल जोड़ दी गई जिसे आप स्रोत नियंत्रण में नहीं चाहते हैं, लेकिन सहेजना चाहते हैं? मुझे लगता है कि ऐसा होता है।
Ry4an Brase

42

डाल करने के लिए सबसे अच्छा तरीका यह है कि hg forgetहै समान करने के लिए hg remove सिवाय कि इसमें पीछे फ़ाइलों को छोड़ देता है अपने काम करने की नकल। फ़ाइलों को बिना फ़ाइल के पीछे छोड़ दिया जाता है और अब वैकल्पिक रूप से इसमें एक पैटर्न के साथ अनदेखा किया जा सकता है .hgignore

दूसरे शब्दों में, मैं नहीं बता सकता कि आपने उपयोग किया है hg forgetया hg removeजब मैं आपसे खींचता हूं। एक फ़ाइल है कि आप दौड़ा hg forgetपर होगा जैसे कि आपने इस्तेमाल किया था - जब मुझे लगता है कि changeset के लिए अद्यतन हटा दिया hg removeबजाय।


27

प्रलेखन से, आप प्रोजेक्ट इतिहास में फ़ाइल रखने के लिए जाहिरा तौर पर कमांड का उपयोग कर सकते हैं। ऐसा लगता है कि आप हटाना चाहते हैं, क्योंकि यह फ़ाइल को कार्यशील निर्देशिका से हटा भी देता है।

Http://hgbook.red-bean.com/read/ पर Mercurial पुस्तक से :

किसी फ़ाइल को निकालने से उसके इतिहास पर कोई असर नहीं पड़ता है। यह समझना महत्वपूर्ण है कि किसी फ़ाइल को हटाने के केवल दो प्रभाव हैं। यह कार्यशील निर्देशिका से फ़ाइल का वर्तमान संस्करण निकालता है। यह मर्क्यूरियल को अगले बदलाव के समय से फ़ाइल में परिवर्तन पर रोक लगाता है। किसी फ़ाइल को हटाने से किसी भी तरह से फ़ाइल के इतिहास में परिवर्तन नहीं होता है।

मैन पेज hg (1) यह भूल जाने के बारे में कहता है:

निर्दिष्ट फ़ाइलों को चिह्नित करें ताकि वे अगले प्रतिबद्ध होने के बाद ट्रैक नहीं किए जाएंगे। यह केवल वर्तमान शाखा से फ़ाइलों को हटाता है, न कि पूरे प्रोजेक्ट इतिहास से, और यह उन्हें कार्यशील निर्देशिका से हटाता नहीं है।

और इसे हटाने के बारे में:

रिपॉजिटरी से हटाने के लिए संकेतित फ़ाइलों को शेड्यूल करें। यह केवल वर्तमान शाखा से फाइलें निकालता है, न कि पूरे प्रोजेक्ट इतिहास से।


3

यदि आप "hg remove b""A" स्टेटस वाली फाइल के खिलाफ उपयोग करते हैं , जिसका अर्थ है कि इसे जोड़ा गया है लेकिन कमिट नहीं किया गया है, तो Mercurial जवाब देगा:

  not removing b: file has been marked for add (use forget to undo)

यह प्रतिक्रिया हटाने और भूलने के बीच के अंतर का एक बहुत स्पष्ट अन्वेषण है।

मेरी समझ यह है कि "hg forget"एक जोड़ा को पूर्ववत करने के लिए है, लेकिन प्रतिबद्ध फ़ाइल नहीं है ताकि यह संस्करण नियंत्रण द्वारा ट्रैक न हो; जबकि "hg remove"संस्करण नियंत्रण से एक प्रतिबद्ध फ़ाइल निकालने के लिए है।

इस धागे में hg remove7 विभिन्न प्रकार की स्थिति की फ़ाइलों के खिलाफ उपयोग करने के लिए एक उदाहरण है ।


2

किसी फ़ाइल को ट्रैक किया जा सकता है या नहीं, आप किसी फ़ाइल को ट्रैक करने के लिए hg ऐड का उपयोग करते हैं और hg को हटाते हैं या hg इसे अन-ट्रैक करना भूल जाते हैं। बिना झंडे के hg हटाने का उपयोग करने से फ़ाइल को हटा दिया जाएगा और इसे ट्रैक नहीं किया जा सकता है, hg भूलने के बिना इसे हटाए बिना बस इसे ट्रैक कर देगा।


3
मुझे नहीं पता कि आपने इस उद्धरण को जोड़ने की आवश्यकता क्यों महसूस की जब आदमी खुद पहले से ही धोखा दे रहा था, लेकिन हे, जो भी आपकी नाव तैरता है।
नाथन तुग्गी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.