2013-01-20 11 views
6

अक्सर, मैं git clean -f के साथ git reset --hard निष्पादित करता हूं ताकि मेरी शाखा को संशोधनों और फ़ाइलों को बनाने के लिए साफ किया जा सके। यह आदेश, सभी अनचाहे फ़ाइलों को हटा देता है, जो मेरे लिए ठीक है, लेकिन ऐसी कुछ फ़ाइलें हैं जिन्हें मैं रहना चाहता हूं, जैसे कि प्रोजेक्ट या .settings (ग्रहण के लिए)गिट रीसेट - विशिष्ट अनचाहे फ़ाइलों को अनदेखा करना

ये फ़ाइल भंडार का हिस्सा नहीं हैं, और .gitignore फ़ाइल में घोषित किया। उपर्युक्त आदेश जारी करते समय इन फ़ाइलों को रखने का कोई तरीका है, या शायद मुझे इसके लिए अलग-अलग आदेश चाहिए?

उत्तर

5

ध्यान दें कि git clean-f चाहिए केवल हटा अज्ञात git करने के लिए, नहीं नजरअंदाज कर दिया फ़ाइलों।

केवल git clean -f -x अनदेखा फ़ाइलों को हटा देगा।

(सभी मामलों में, एक git clean -n -... बेहतर है, क्या हटा दिया जाएगा के एक पूर्वावलोकन के लिए)

git clean से अधिक git reset का लाभ काम कर के रूप में प्रमुख चलती और सूचकांक रीसेट करने के साथ-साथ के बारे में मुख्य रूप से है पेड़।
git clean केवल काम करने वाले पेड़ के बारे में है।

4

git reset अनदेखा फ़ाइलों को स्पर्श नहीं करेगा। यह HEAD पॉइंटर और इंडेक्स के साथ काम करता है, ज्यादातर। लेकिन git clean बुराई है:

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

तो उत्तर है: git clean का उपयोग न करें।

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