git - स्थानीय फाइल सिस्टम से इसे हटाए बिना गिट भंडार से फ़ाइल निकालें




repository remote-server (6)

गिट आपको उन फ़ाइलों को अनदेखा करके मानते हैं कि वे अपरिवर्तित हैं। यह git update-index --assume-unchanged path/to/file.txt कमांड चलाकर किया जाता है। एक बार फ़ाइल को चिह्नित करने के बाद, गिट उस फ़ाइल पर किसी भी बदलाव को पूरी तरह से अनदेखा कर देगा; गिट स्थिति या गिट diff चलाते समय वे दिखाई नहीं देंगे, और न ही वे कभी प्रतिबद्ध होंगे।

( https://help.github.com/articles/ignoring-files )

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

नोट: यह सीधे सवाल का जवाब नहीं दे रहा है, लेकिन अन्य उत्तरों की टिप्पणियों में अनुवर्ती प्रश्नों पर आधारित है।

मेरी शुरुआती प्रतिबद्धता में कुछ लॉग फाइलें थीं। मैंने अपने .gitignore *log .gitignore , और अब मैं अपने भंडार से लॉग फ़ाइलों को हटाना चाहता हूं।

git rm mylogfile.log

भंडार से एक फाइल को हटा देगा, लेकिन इसे स्थानीय फाइल सिस्टम से भी हटा देगा।

फ़ाइल की मेरी स्थानीय प्रति को हटाए बिना मैं इस फ़ाइल को रेपो से कैसे हटा सकता हूं?


आप स्थानीय फ़ाइल सिस्टम से उन्हें हटाए बिना अपने .gitignore के आधार पर रिपॉजिटरी से फ़ाइलों को भी हटा सकते हैं:

git rm --cached `git ls-files -i -X .gitignore`

या, वैकल्पिक रूप से, विंडोज पावरहेल पर:

git rm --cached $(git ls-files -i -X .gitignore)

एक और सामान्य समाधान:

  1. संपादित करें .gitignore फ़ाइल।

    ECHO mylogfile.log >> .gitignore

  2. इंडेक्स से सभी आइटम निकालें।

    git rm -r -f --cached .

  3. सूचकांक पुनर्निर्माण।

    git add .

  4. नई प्रतिबद्धता बनाएं

    git commit -m "Removed mylogfile.log"


एकल फ़ाइल के लिए:

git rm --cached mylogfile.log

एकल निर्देशिका के लिए:

git rm --cached -r mydirectory

रेपो से एक संपूर्ण फ़ोल्डर को हटाने के लिए (जैसे रिशेर्पर फाइलें), ऐसा करें:

git rm -r --cached folderName

मैंने कुछ रिशेर्पर फाइलें की हैं, और नहीं चाहते थे कि वे अन्य प्रोजेक्ट उपयोगकर्ताओं के लिए बने रहें।


साथ ही, यदि आपने संवेदनशील डेटा (जैसे पासवर्ड वाली फ़ाइल) का उपयोग किया है, तो आपको इसे रिपोजिटरी के इतिहास से पूरी तरह से हटा देना चाहिए। यहां एक गाइड है जो यह बताता है कि यह कैसे करें: http://help.github.com/remove-sensitive-data/





git-rm