2012-09-30 13 views
57

मैं गिट सीखने की कोशिश कर रहा हूं। मैं उलझन मेंगिट आरएम - कैश किए गए फ़ाइल बनाम गिट रीसेट फ़ाइल

और

के बीच
git rm --cached file 

git reset file 

आदेशों की दोनों संयुक्त राष्ट्र मंचन क्षेत्र के लिए मंचन से फाइल लेने के लिए लग रहा है। आदेश कैसे भिन्न होते हैं?

+2

संभावित डुप्लिकेट [\ git rm --cached asd \ 'और \ 'गिट रीसेट हेड - asd \'] के बीच क्या अंतर है (http://stackoverflow.com/questions/5798930/whats-the- अंतर-बीच-जीआईटी-आरएम-कैश्ड-asd-and-git-reset-head-asd) – Undistraction

उत्तर

77

git rm --cached <file> पूरी तरह से अनुक्रमणिका से फ़ाइल की सामग्री को हटा देगा। इसका मतलब यह है कि फ़ाइल को HEAD प्रतिबद्धता से हटा दिया जाएगा। (अगर फ़ाइल को केवल इंडेक्स में जोड़ा गया था और अभी तक ट्रैक नहीं किया गया है तो यह "नो-ऑप" है।)

git reset -- <file> इंडेक्स में फ़ाइल की सामग्री को मुख्य प्रतिबद्धता के समान रीसेट करता है। इसका मतलब है कि पर कोई बदलाव फ़ाइल के लिए प्रतिबद्ध नहीं होगा। HEAD प्रतिबद्ध में फ़ाइल का कोई ट्रैक संस्करण नहीं है, तो यह ऑपरेशन मान्य नहीं है।

+3

शायद एक अतिरिक्त के रूप में: 'git rm --cached' इंडेक्स में फ़ाइल की * हटाएं * कार्रवाई को जोड़ देगा, बस जैसे 'गिट एड' एक * एड * एक्शन जोड़ देगा। – poke

+0

सूचकांक == स्टेजिंग क्षेत्र है? अगर कोई अनुक्रमणिका इंडेक्स में है, तो क्या यह विस्तार से ट्रैक नहीं है? – ataulm

+0

गिट रीसेट के लिए - , हेड प्रतिबद्ध में उस फ़ाइल का एक ट्रैक संस्करण होना चाहिए। यदि यह इंडेक्स में जुड़ी नई फाइल है, तो HEAD प्रतिबद्ध –

संबंधित मुद्दे