2019 अपडेट:
के बाद से जुलाई 2019 , एक नया आदेश जो वास्तव में यह करता है किया गया है: git restore।
में git status, अब Git इस कमांड का उपयोग करने की सिफारिश git checkoutकरता है जैसे कि यह करता था।
जबकि इस कमांड का उपयोग कार्यशील पेड़ को एक विशिष्ट वचनबद्धता के लिए या अनुक्रमणिका की सामग्री को पुनर्स्थापित करने के लिए भी किया जा सकता है, डिफ़ॉल्ट रूप से, कार्यशील वृक्ष को अनुक्रमणिका में स्थिति के लिए बहाल किया जाता है (यहाँ क्या पूछा गया है)।
इसलिए, एक पैथस्पेक से मेल खाती हुई फ़ाइलों को पुनर्स्थापित करने के लिए (उनके अस्थिर परिवर्तनों से छुटकारा पाने के लिए), आप करेंगे:
git restore <pathspec>
उदाहरण के लिए, वर्तमान निर्देशिका में सभी अस्थिर परिवर्तनों को पुनर्स्थापित करने के लिए, आप चला सकते हैं:
git restore .
यदि आप इसे प्रोजेक्ट के रूट से चलाते हैं, तो यह संपूर्ण रिपॉजिटरी में सभी अस्थिर परिवर्तनों को पुनर्स्थापित करेगा।
ध्यान दें, जैसा कि git checkout -- .(Mariusz Nowak द्वारा बताया गया है), यह केवल Git द्वारा ट्रैक की गई फ़ाइलों में परिवर्तन को छोड़ देगा और किसी भी नई अनट्रैक की गई फ़ाइलों को नहीं छोड़ेगा। यदि आप नई अनट्रैक की गई फ़ाइलों सहित किसी भी अस्थिर परिवर्तन को छोड़ना चाहते हैं, तो आप एक अतिरिक्त चला सकते हैं:
git clean -df
बाद में इस आदेश के साथ बहुत सावधान रहें क्योंकि आप उन फ़ाइलों को छोड़ सकते हैं जिन्हें आपने निकालने का इरादा नहीं किया था।
ध्यान दें git restore: क्योंकि यह एक नया कमांड है, इसका मैन पेज एक चेतावनी देता है:
यह कमांड प्रायोगिक है। व्यवहार बदल सकता है।
इसलिए यह संभव है कि यदि भविष्य में व्यवहार में परिवर्तन होता है तो यह उत्तर पुराना हो सकता है। इस प्रकार इसका man git-restoreउपयोग करने से पहले एक त्वरित चलाने के लिए बुद्धिमान हो सकता है।
git-cleanकेवल काम कर रहे पेड़ से अनियोजित