2015-03-12 10 views
46

मैं अपने भंडार की सभी फाइलों में सभी बदलावों से कैसे छुटकारा पा सकता हूं?गिट चेकआउट सभी फाइलें

कहें कि मैं एक शाखा में हूं और मैंने कुछ बदलाव किए हैं। git status "परिवर्तन के लिए चरणबद्ध नहीं किए गए परिवर्तन" में फ़ाइलों का एक सेट देता है और मुझे लगता है कि मैं सभी फ़ाइलों में इन सभी परिवर्तनों से छुटकारा पाना चाहता हूं। मैं इसे एक कमांड के साथ कैसे कर सकता हूं?

मैं जानता हूँ कि मैं सिर्फ एक फ़ाइल चेकआउट करने के लिए निम्न कर सकते हैं:

git checkout -- <file> 

मैंने देखा है कि git checkout -- अकेले सब uncommited फ़ाइलों की सूची देता है। हालांकि, मुझे उन सभी को चेकआउट करने का कोई तरीका नहीं मिल रहा है, जैसे git checkout --all

मैंने man git checkout चेक किया और कुछ भी नहीं मिला। इसके अलावा मैंने Git: Checkout all files except one देखा और git checkout . को आजमाया और काम नहीं किया।

क्या मुझे इसे git checkout -- आउटपुट के माध्यम से लूप करके प्रोग्रामेटिक रूप से करना होगा?

उत्तर

67

यदि आप अपनी कार्यशील निर्देशिका की जड़ पर हैं, तो आप मौजूदा HEAD में सभी फ़ाइलों को चेक-आउट करने और अपनी स्थानीय फ़ाइलों को प्रतिस्थापित करने के लिए git checkout -- . कर सकते हैं।

आप अपनी कार्य निर्देशिका को रीसेट करने और सभी परिवर्तनों (इंडेक्स समेत) को रीसेट करने के लिए git reset --hard भी कर सकते हैं।

+0

दो विकल्प समतुल्य हैं (यदि हम HEAD पर रीसेट करते हैं)? – lucidbrot

+2

नहीं, कुछ मतभेद हैं। उदाहरण के लिए 'गिट चेकआउट -।' केवल इंडेक्स की स्थिति में बदलावों को रीसेट करेगा। इसलिए यदि आपने पहले से ही इंडेक्स में फाइलें जोड़ दी हैं, तो यह वही होगा जो इसे रीसेट कर देगा। दूसरी तरफ 'गिट रीसेट - हार्ड' इंडेक्स को भी फेंक देगा, उदाहरण के लिए यदि आपके पास इंडेक्स में अनचाहे फाइलें हैं (उन्हें ट्रैक करना शुरू करने के लिए), तो उन्हें भी हटा दिया जाएगा। 'गिट चेकआउट' आपको एक और विशिष्ट पथ को पार करके केवल आंशिक रूप से कार्यशील निर्देशिका को पुनर्स्थापित करने की अनुमति देता है जो बहुत उपयोगी हो सकता है। – poke

+0

गिट चेकआउट के बीच क्या अंतर है। और गिट चेकआउट -।? –

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