2009-12-31 13 views
115

का उपयोग कर फ़ाइलों को हटाना सबसे पहले, मैं गिट के लिए नया हूं।गिट/गिटहब

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

किसी भी Git उपयोगकर्ताओं अनुक्रमणिका को अपडेट करने के लिए एक आदेश पता है?

+0

यह भी देखें http://stackoverflow.com/questions/492558/removing-multiple-files-from-a-git-repo-that-have-already-been हटाए गए डिस्क से –

उत्तर

224

मुझे लगता है कि यह तुम क्या चाहते करने के लिए एक सरल तरीका होगा: "की तरह कुछ करना

git add . -A 

तो फिर तुम बस करना होगा:

git commit -m "removed some files" 

जैसा ऊपर बताया गया है।

+0

धन्यवाद। और मैंने उपर्युक्त करने के लिए बस 'बाश' में उपनाम लिखा था। कमाल। – Zack

+0

यदि आपने एक ही "चरण" गिट में एक फ़ाइल जोड़ दी है तो एक नाम बदल जाएगा। इसके बारे में कुछ करने के लिए या आप उन्हें अलग से प्रतिबद्ध करना चाहिए? – Koen

+12

-ए ध्वज क्या करता है? –

17

आप हटाए गए फ़ाइलें, जो अभी भी कर रहे हैं के साथ 'नज़र रखी' देख सकते हैं:

git ls-files --deleted 

एक शाखा से फ़ाइलों को हटाने के लिए, आप कुछ इस तरह कर सकते हैं:

git ls-files --deleted -z | xargs -0 git rm 

man git-rm से:

इंडेक्स से या कार्यरत पेड़ और सूचकांक से फ़ाइलें निकालें। git-rm सिर्फ आपकी कार्यशील निर्देशिका से फ़ाइल को नहीं हटाएगा। "हटाने के लिए प्रतिबद्ध करने, अंत में

, (उपयोग/bin/rm अगर आपको लगता है कि क्या करना चाहते हैं वहाँ 13 केवल काम के पेड़ से और अभी तक सूचकांक में रखने के एक फ़ाइल को हटाने के लिए कोई विकल्प नहीं है।)

git commit -m "removed some files" 
+0

धन्यवाद, अगला क्या है? – Zack

+0

फिर आपको परिवर्तन करने की आवश्यकता है - 'git commit -m "ने कुछ फ़ाइलों को हटा दिया" ' –

+0

हां, ज़ाहिर है, धन्यवाद - – miku

17

अगर यह पिछले जवाब के बाद से git करने के लिए जोड़ दिया गया है मैं नहीं जानता, लेकिन मैं सिर्फ

git add -u 
git commit -m "Removed some files" 

इस्तेमाल किया एक ही बात को प्राप्त करने के।

+0

यह सूचीबद्ध उपयोग केस के लिए काम करता है, लेकिन यह केवल फ़ाइलों को हटाने में नहीं जोड़ता है। यह उन सभी फ़ाइलों को जोड़ता है जो किसी भी तरह से बदल दिए गए हैं, इसलिए यह आमतौर पर सभी हटाए गए फ़ाइलों को हटाने का एक अच्छा तरीका नहीं है जब तक कि आपके द्वारा किए गए एकमात्र परिवर्तन न हों। – Alex

2
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch deletefile.name' --prune-empty --tag-name-filter cat -- --all 
git commit -m "Removed deletefile.name" 
git push origin master --force 

हटाने के लिए फ़ाइल के साथ deletefile.name बदलें। गहन विस्तृत स्पष्टीकरण के लिए अच्छा आलेख https://help.github.com/articles/remove-sensitive-data