mercurial - मर्क्यूरियल में एक हटाने की क्रिया को पूर्ववत करें




(5)

Jk पर आपकी टिप्पणी के बाद, मैंने hg forget जाँच की। यह hg remove -Af लिए सिर्फ एक शॉर्टकट hg remove -Af , जिसका अर्थ है कि यह hg add का वास्तविक विपरीत है।

इसके बाद, यदि आपने hg remove -Af उपयोग किया है, तो आपको यह hg remove -Af करने में सक्षम होना चाहिए कि hg add का उपयोग करें (मैंने अभी इसकी कोशिश की है और काम करने लगता है)।

मान लीजिए कि मैंने कार्य निर्देशिका में कुछ बदलाव किए हैं और गलती से हटाने के लिए कई फाइलें (जिसमें कुछ संशोधित शामिल हैं) को चिह्नित किया है। मैंने अपने द्वारा किए गए परिवर्तनों को खोए बिना हटाने के लिए फ़ाइलों को कैसे चिह्नित किया?


मार्कर .hg / dirstate फ़ाइल में संग्रहीत किए जाते हैं। hg remove -Af जारी करने से पहले आपको एक से एक प्राप्त करने की hg remove -Af । यह इस तरह लग सकता है (परीक्षण नहीं):

hg clone bad-repo orig-repo
cp orig-repo/.hg/dirstate bad-repo/.hg/dirstate
cd bad-repo
hg status

फ़ाइलों को हटाने से पहले अंतिम कमांड को स्थिति दिखाना चाहिए।


यदि फ़ाइल मौजूद है, (संभवतः यदि आपने इसे hg forget जाने के साथ हटाने के लिए चिह्नित किया है या यदि आपने इसे संशोधित किया है तो hg remove इसे hg remove d), तो hg add [file] इसे अंतिम कमिट के बाद किए गए किसी भी परिवर्तन के साथ वापस जोड़ने के लिए और फ़ाइल को भूलने से पहले।

यदि फ़ाइल मौजूद नहीं है (संभावना है कि यदि फ़ाइल अनमॉडिफाइड थी और आपने hg remove निष्कासन का उपयोग करके हटाने के लिए फ़ाइल को चिह्नित किया है), तो hg revert [file] इसे कार्यशील निर्देशिका के माता-पिता में वापस उसके राज्य में वापस लाने के लिए।


एचजी रिवर्ट का उपयोग करने के दो विकल्प हैं:

एचजी रिवर्ट-ए

जो पिछले पुनरीक्षण में वापस जाएगा और अपने सभी परिवर्तनों को नई फाइलों में डाल देगा। साथ ही नामों में संलग्न होगा

hg रिवर्ट [फाइलों का नाम बदलने के लिए] बस उन फाइलों को वापस करने के लिए

मैं शायद बाद के साथ जाना होगा


बस hg add फाइलें hg add

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

[email protected]:~/hgtest$ hg status --all
M another_file
C a_file
[email protected]:~/hgtest$ hg remove --after --force *
[email protected]:~/hgtest$ hg status --all
R a_file
R another_file
[email protected]:~/hgtest$ hg add *
[email protected]:~/hgtest$ hg status --all
M another_file
C a_file

उस ने कहा, hg remove या कभी वास्तव में के साथ --force उपयोग न करें। इसके अलावा hg remove --after बजाय hg forget जाने की आदत hg remove --after -





mercurial