git सभी फाइलों को चेकआउट करें


127

मैं अपनी रिपॉजिटरी की सभी फाइलों में सभी परिवर्तनों से कैसे छुटकारा पा सकता हूं?

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

मुझे पता है कि मैं केवल एक फ़ाइल चेकआउट करने के लिए निम्नलिखित कर सकता हूं:

git checkout -- <file>

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

मैंने जाँच की man git checkoutऔर कुछ भी नहीं मिला। इसके अलावा मैंने गिट को देखा : एक को छोड़कर सभी फाइलों को चेकgit checkout . किया और कोशिश की और काम भी नहीं किया।

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

जवाबों:


194

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

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


क्या दो विकल्प समतुल्य हैं (यदि हम HEAD में रीसेट हो जाते हैं)?
ल्यूसीडब्रोट

10
नहीं, कुछ निश्चित अंतर हैं। उदाहरण के लिए git checkout -- .केवल अनुक्रमणिका की स्थिति में परिवर्तन को रीसेट करेगा। इसलिए यदि आपने पहले ही फाइल को इंडेक्स में शामिल कर लिया है, तो वही इसे रीसेट करेगा। दूसरी ओर git reset --hardसूचकांक को भी फेंक देगा, इसलिए उदाहरण के लिए यदि आपने अनुक्रमणित में अनट्रैक की गई फ़ाइलों को जोड़ा है (उन्हें ट्रैक करना शुरू करने के लिए), तो उन्हें भी हटा दिया जाएगा। git checkoutआपको आंशिक रूप से अधिक विशिष्ट पथ को पार करके केवल कार्य निर्देशिका को पुनर्स्थापित करने की अनुमति देता है जो बहुत उपयोगी हो सकता है।
प्रहार


4
@ पोक हाय पोक, मुझे यकीन है कि गिट चेकआउट -। काम नहीं करता है। मैंने इसे कई अस्थिर परिवर्तनों के लिए आज़माया।
अमन

2
: अन्य आदेशों एक ही परिणाम प्राप्त करने के लिए git checkout --force,git reset --hard
tjalling

3

अन्य तरीका जो मुझे उपयोगी लगा वह है:

git checkout <wildcard> 

उदाहरण:

git checkout *.html

आम तौर पर:

git checkout <branch> <filename/wildcard>

1
यदि आपके शेल पर ग्लोबिंग सक्षम है और वर्किंग डायरेक्टरी में अनट्रैक फाइल्स हैं तो यह तब तक विफल रहेगा जब तक कि आप तारांकन से बच नहीं जाते हैं, जैसे git checkout \*या git checkout '*'
जोश कोइली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.