2009-07-22 11 views
6

एक SVN कार्यशील निर्देशिका में, मैं'आरएम' + 'एसवीएन अपडेट' गिट में बराबर है?

  1. फाइलों में कुछ बदलाव काम कर निर्देशिका में कर सकते हैं
  2. सभी परिवर्तनों को मैं 'rm कि सभी निर्देशिका में स्रोत फ़ाइलों को हटाने के द्वारा किए गए, लेकिन मेरे .svn रखने निर्देशिका)
  3. पुनः प्राप्त क्या ट्रंक 'SVN अद्यतन' और SVN का उपयोग कर सभी स्रोत वापस मेरे कार्य निर्देशिका पर डाउनलोड हो जाएगा द्वारा माना जाता।

वहाँ Git में एक समान आदेश है? क्या आप कृपया मुझे बता सकते हैं कि ऐसा कैसे करें?

+2

svn वापस आ गया है; आपको उन सभी फ़ाइलों को हटाने के माध्यम से जाना नहीं है जिन्हें आपने बदल दिया है। – balpha

+0

'svn revert' अतिरिक्त फ़ाइलों को हटा नहीं देगा, मुझे लगता है। – Bombe

उत्तर

9
git reset --hard 

जो "git reset --hard HEAD" के लिए एक पर्याय है होना चाहिए कि आप क्या देख रहे हैं।

सावधानी के साथ इसका इस्तेमाल के रूप में यह प्रभावी ढंग से अपने काम की निर्देशिका में किसी भी वर्तमान परिवर्तन हटा जाएगा। देखें "Undoing in Git"

नोट: Charles Bailey टिप्पणी में उल्लेख किया गया है, और in his answer, यह अनचाहे फ़ाइलों को नहीं हटाएगा।
उस git clean के लिए सही उपकरण है। उसकी answer for more देखें, लेकिन यह भी तो सवाल "How do you remove untracked files from your git working copy?", या Git रेडी लेख "cleaning up untracked files"।

तो हम एक प्रमुख सफाई करना चाहता था, तो:

$ git clean -n -d -x 

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

नोट, आप move your untracked files instead चाहते हैं।

+0

यह ध्यान देने योग्य हो सकता है कि यह अनचाहे (या तो नई या अनदेखी) फ़ाइलों को नहीं हटाता है जो ओपी की एसवीएन रेसिपी होगी। –

4
  1. आप अपने कार्यशील निर्देशिका
  2. आप अपने कार्यशील निर्देशिका

    $ Git चेकआउट की बुनियाद होती हैं में ट्रैक फ़ाइलों में परिवर्तन की दूर सब फेंक करना चाहते हैं।

यह वर्तमान शाखा (सिर) में अंतिम प्रतिबद्धता से ट्रैक की जा रही हर फ़ाइल को बार-बार चेकआउट (पुनर्स्थापित) करेगा।

2

यह मानते हुए कि आप अपने काम की नकल की बुनियाद होती हैं।

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

git clean -n 

git clean -f 

फिर अपनी सभी ट्रैक की गई फ़ाइलों के लिए इंडेक्स से ताजा अनमोडिफाइड फाइलें देखें।

git checkout . 
+0

अच्छा बिंदु। +1। मैंने आपके जवाब को मेरे साथ जोड़ा है। – VonC

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