2011-01-09 15 views
113

मैंने गलती से "git add dir" कमांड का उपयोग कर फाइलें जोड़ दीं। मैंने अभी तक "गिट प्रतिबद्ध" नहीं चलाया है। क्या इस डीआईआर और प्रतिबद्धता से इसमें शामिल सबकुछ को हटाने का कोई तरीका है?पूर्ववत करें "गिट <dir> जोड़ें"?

मैंने git reset dir को आजमाया है, लेकिन यह काम नहीं किया। स्पष्ट रूप से git reset file इसे पूर्ववत करने का तरीका है। लेकिन मेरे पास इतनी सारी फाइलें हैं और बहुत कम समय है।

+3

'गिट रीसेट ' उस पथ के सूचकांक को अद्यतन करता है ताकि यह 'HEAD' (वर्तमान प्रतिबद्धता) से मेल खाता हो। यह काम करने वाले पेड़ को छूता नहीं है। – Cascabel

उत्तर

182

सूचकांक से इसके अंदर किसी डायरेक्ट्री को निकालने के लिए,

git rm --cached -r dir

--cached स्विच git rm ope बनाता है केवल सूचकांक पर दर और कार्यशील प्रति को स्पर्श न करें। -r स्विच इसे रिकर्सिव बनाता है।

+0

यह आदेश मेरे लिए काम किया। धन्यवाद। – neoneye

+9

"इंडेक्स से पूरी स्टेज्ड निर्देशिका को निकालने के लिए" गिट कमांड का थोड़ा बेहतर स्पष्टीकरण होगा, क्योंकि मेरे जैसे गिट शुरुआती लोगों के लिए आदेश बहुत अधिक दिखता है जैसे कि यह फ़ाइल सिस्टम पर निर्देशिका को भी हटा सकता है। स्वाद के मामले की बस। –

+0

यही कारण है कि मैंने '--cached' स्विच बोल्ड किया था। फिर भी, मैंने जवाब देने के लिए उत्तर संपादित किया है कि यह केवल इंडेक्स पर लागू होता है। –

14

आप git rm --cached -r <dir> उपयोग करना चाहते हैं जाएगा। यह आदेश इंडेक्स से चरणबद्ध निर्देशिका सामग्री को हटा देगा।

यदि निर्देशिका पहले से ट्रैक किया गया था आप मैन्युअल रूप से नए और पुराने फ़ाइलें खोजने के लिए और उन्हें unstage करने के लिए है ...

शायद git reset <dir> कि पीछे भागता निर्देशिका के अंदर मौजूदा (और पहले से ही पता लगाया) फ़ाइलें पुनर्स्थापित करने के लिए

+0

यह मेरे लिए काम किया –

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