Git / GitHub का उपयोग करके फ़ाइलें हटाना


115

सबसे पहले, मैं Git के लिए नया हूँ।

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

कोई भी उपयोक्ता सूचकांक को अद्यतन करने के लिए एक कमांड जानता है?


जवाबों:


226

मुझे लगता है कि यह एक सरल तरीका होगा जो आप चाहते हैं:

git add . -A 

तो आप बस करेंगे:

git commit -m "removed some files"

जैसा कि ऊपर उल्लेखित है।


धन्यवाद। और मैंने bashऊपर करने के लिए सिर्फ उर्फ ​​लिखा था । गजब का।
ज़ैक

12
-ए झंडा क्या करता है?
किम प्रिंस

1
@KimPrince - kernel.org के अनुसार , "-A-all Like -u, लेकिन इंडेक्स के अलावा वर्किंग ट्री में मौजूद फाइल्स के खिलाफ <filepattern> से मेल खाता है। इसका मतलब है कि इसमें नई फाइल्स के साथ-साथ मॉडिफाइड कंटेंट को भी स्टोर किया जाएगा। और उन फ़ाइलों को हटाना जो अब काम के पेड़ में नहीं हैं। "
j08691

3
@KimPrince git help addआपको बताएगा कि क्या -Aमतलब है और अन्य सभी स्विच को भी सूचीबद्ध करता है।
मार्सिन ऑर्लोव्स्की

1
यह केवल हटाए गए फ़ाइलों को हटाने से बहुत अधिक है। यह निर्देशिका में बदली गई सभी फ़ाइलों को जोड़ता है, इसलिए यह वास्तव में संतोषजनक उत्तर नहीं है।
एलेक्स

19

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

git ls-files --deleted

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

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

से man git-rm:

अनुक्रमणिका, या कार्यशील ट्री और अनुक्रमणिका से फ़ाइलें निकालें। git-rm सिर्फ आपकी वर्किंग डायरेक्टरी से फाइल नहीं निकालेगा। (केवल काम के पेड़ से एक फ़ाइल 13 को हटाने का कोई विकल्प नहीं है और अभी तक इसे सूचकांक में रखा गया है; यदि आप ऐसा करना चाहते हैं तो बिन / आरएम का उपयोग करें।)

अंत में, "निष्कासन" करने के लिए कुछ ऐसा करें:

git commit -m "removed some files"

फिर आपको परिवर्तन करने की आवश्यकता है -git commit -m "removed some files"
जेम्स पोली

17

मुझे नहीं पता कि क्या पिछले उत्तरों के बाद से इसे जोड़ा गया है, लेकिन मैंने अभी उपयोग किया है

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

उसी चीज को हासिल करने के लिए।


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

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 पर जाएं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.