अंतिम परिवर्तन के बाद सभी परिवर्तन रीसेट करें


324

मैं अंतिम निर्देशिका के बाद अपनी निर्देशिका में किए गए हर बदलाव को कैसे जोड़ सकता हूं , जिसमें जोड़ी गई फ़ाइलों को हटाना, संशोधित फ़ाइलों को रीसेट करना और हटाए गए फ़ाइलों को जोड़ना शामिल है?



8
@nawfal एक डुप्लिकेट हो सकता है, लेकिन 'अंतिम प्रतिबद्ध होने के बाद सभी परिवर्तन रीसेट करें' इसी खोज से अधिक खोज मापदंड (Google में खोजे गए शब्द) से मेल खाता है 'git रिपॉजिटरी को वापस कैसे करें'। कम से कम मेरे जैसे लोगों के लिए जो अपनी मातृभाषा के रूप में अंग्रेजी नहीं रखते हैं: d
शिरीष हेरवाडे

जवाबों:


561

पहले परिवर्तनों को रीसेट करें

git reset HEAD --hard

फिर सब कुछ साफ साफ। यदि आप उन फ़ाइलों को रखना चाहते हैं .gitignore, जिनके कारण ट्रैक नहीं किया गया है , तो इस कमांड से सावधान रहें।

git clean -fd

7
@ एडडम: आप कभी-कभी -xविकल्प git cleanभी चुन सकते हैं, जो इसे अनदेखा फ़ाइलों को हटाने के लिए भी निर्देश देता है।
कास्केलबेल

31
यदि आप उन फ़ाइलों को रखना चाहते हैं, जिन्हें .ignignore के कारण ट्रैक नहीं किया गया है, तो git clean -fdकमांड के साथ सावधान रहें ।
बिट्सफ्लॉजिक

3
@ लिविनारिस: यह दूसरी तरह से इग्नोर की गई git clean -fdफाइलों को डिलीट नहीं करेगा। -xमर्जी।
रॉबर्ट सिएमर

5
@RobertSiemer वास्तव में, यह कर सकते हैं! यदि आपके पास कोई भी फ़ोल्डर है जो पूरी तरह से उपेक्षित फ़ाइलों से बना है, तो यह उन फ़ोल्डरों को हटा देगा जो इस तरह से अनदेखा फ़ाइलों को हटा रहे हैं। यहां एक .gitignore फ़ाइल की तरह विचार करें: stackoverflow.com/q/25554504/456645 । इस उदाहरण में, मान लें कि कुछ फ़ोल्डरों में कोई PHP फ़ाइल नहीं है। git clean -fdउन फ़ोल्डरों और अनटैक की गई फ़ाइलों को हटा देगा। Git संस्करण 1.9.1 के साथ परीक्षण किया गया
बिट्सोफ्लॉजिक

3
लेकिन दूसरे 'क्लीन आउट' की आखिर जरूरत क्यों पड़ी?
शिरीष हेरवाडे

71

मैं अंतिम निर्देशिका के बाद अपनी निर्देशिका में किए गए हर बदलाव को कैसे जोड़ सकता हूं , जिसमें जोड़ी गई फ़ाइलों को हटाना, संशोधित फ़ाइलों को रीसेट करना और हटाए गए फ़ाइलों को जोड़ना शामिल है?

  1. आप ट्रैक की गई फ़ाइलों में परिवर्तन पूर्ववत कर सकते हैं :

    git reset HEAD --hard
    
  2. आप के साथ अनट्रैक की गई फ़ाइलों को हटा सकते हैं :

    git clean -f
    
  3. आप के साथ अनुपचारित फ़ाइलों और निर्देशिकाओं को हटा सकते हैं :

    git clean -fd
    

    लेकिन आप अनटैक की गई फ़ाइलों को बदल नहीं सकते

  4. आप अनदेखा और अनट्रैक की गई फ़ाइलों और निर्देशिकाओं को हटा सकते हैं

    git clean -fdx
    

    लेकिन आप अनदेखा फ़ाइलों में परिवर्तन पूर्ववत नहीं कर सकते

तुम भी सेट कर सकते हैं clean.requireForceकरने के लिए false:

git config --global --add clean.requireForce false

जब आप उपयोग करें -f( --force) का उपयोग करने से बचें git clean


2
बहुत बढ़िया, बस मुझे जो चाहिए था। सभी प्रासंगिक आदेशों की तुलना के लिए धन्यवाद!
मार्की

-1

इस स्थिति में काम करने वाले दो कमांड हैं,

रूट> गिट रीसेट - भार HEAD ~ 1

root> गिट पुश -f

अधिक git कमांड के लिए इस पेज को देखें


1
git push -fसवाल से संबंधित नहीं है और इस परिदृश्य में, खतरनाक है
मूंछ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.