फ़ाइल सिस्टम से हटाए बिना किसी फ़ाइल को इंडेक्स (= स्टेजिंग एरिया = कैश) से कैसे हटाया जाए?
फ़ाइल सिस्टम से हटाए बिना किसी फ़ाइल को इंडेक्स (= स्टेजिंग एरिया = कैश) से कैसे हटाया जाए?
जवाबों:
तुम्हें चाहिए:
git rm --cached [file]
यदि आप --cached
विकल्प को छोड़ देते हैं , तो यह उसे कार्यशील ट्री से हटा देगा। git rm
की तुलना में थोड़ा सुरक्षित है git reset
, क्योंकि आपको चेतावनी दी जाएगी कि यदि मंचित सामग्री शाखा की नोक या डिस्क पर फ़ाइल से मेल नहीं खाती है। (यदि ऐसा नहीं है, तो आपको जोड़ना होगा --force
।)
git rm --cached
रेपो से उन्हें निकालने के लिए उपयोग करें। .ignignore, चरणबद्ध और सामान्य के रूप में संबंधित फ़ाइलों या निर्देशिकाओं को जोड़ें। वे रेपो से चले जाएंगे लेकिन आपके स्थानीय पेड़ से अछूते नहीं रहेंगे, और आप गलती से उन्हें फिर से नहीं देखेंगे।
यह आपके लिए (फ़ाइल को हटाए या अन्यथा संशोधित किए बिना) एक फ़ाइल को अस्थिर कर सकता है:
git reset <file>
HEAD
।
HEAD
!
git reset HEAD <file>
सूचकांक से एक विशेष फ़ाइल को हटाने के लिए।
तथा
git reset HEAD
सभी अनुक्रमित फ़ाइलों को हटाने के लिए।
आपके वर्कफ़्लो के आधार पर, यह एक ऐसी चीज़ हो सकती है जिसकी आपको बहुत कम आवश्यकता होती है, जो कमांड-लाइन समाधान का पता लगाने की कोशिश में बहुत कम बिंदु है (जब तक कि आप किसी कारण के बिना ग्राफ़िकल इंटरफ़ेस के बिना काम नहीं करते हैं)।
उदाहरण के लिए, अनुक्रमणिका प्रबंधन का समर्थन करने वाले GUI- आधारित उपकरणों में से एक का उपयोग करें:
git gui
<- Tk विंडोिंग फ्रेमवर्क का उपयोग करता है - समान शैली के लिए gitk
git cola
<- अधिक आधुनिक शैली वाला GUI इंटरफ़ेसये आपको पॉइंट-एंड-क्लिक द्वारा इंडेक्स से फ़ाइलों को अंदर और बाहर ले जाने देते हैं। यहां तक कि उनके पास सूचकांक से (और व्यक्तिगत परिवर्तन) फ़ाइल के भागों को चुनने और आगे बढ़ने के लिए समर्थन है।
एक अलग दृष्टिकोण के बारे में कैसे: यदि आप किसी एक सुझाव का उपयोग करते समय गड़बड़ करते हैं, बल्कि गूढ़ हैं, तो आदेश देते हैं:
git rm --cached [file]
git reset HEAD <file>
... आप डेटा खोने का एक वास्तविक मौका खड़े हैं - या कम से कम इसे खोजने के लिए कठिन बना रहे हैं। जब तक आपको वास्तव में बहुत उच्च आवृत्ति के साथ ऐसा करने की आवश्यकता नहीं होती है, तब तक GUI उपकरण का उपयोग करना अधिक सुरक्षित होता है ।
टिप्पणियों और वोटों के आधार पर, मुझे पता चला है कि बहुत सारे लोग हर समय सूचकांक का उपयोग करते हैं। मैं नही। ऐसे:
git commit -a
git commit (list of files)
git commit -a
फिर के माध्यम से संशोधन करेंgit gui
git difftool --dir-diff --tool=meld
git commit -a
। जब मैं इस सवाल का जवाब दे रहा था, तो ऐसा इसलिए था क्योंकि मैंने (एक विदेशी) " उलटा चेरी पिक " किया था, जो आपके लिए सूचकांक में फाइलें डालता है, लेकिन मैं कमिट करने से पहले एक फाइल को संपादित करना चाहता था। मैंने फ़ाइल को अनुक्रमणिका से बाहर निकाल लिया, जबकि मैंने इसे संपादित किया ताकि डिफरेंशियल उस तरह से काम करे जिस तरह से मैं करता हूँ।
rm
सीधे उपयोग करना होगा, लेकिन मैंने पहले सोचा था कि स्विचिंग शाखाएं अनदेखा फ़ोल्डर को नहीं मारेंगी। लेकिन ... मैं github "gui आधारित" टूल का उपयोग करता हूं जो मेरे लिए काफी अच्छा है और कुछ सूचकांक प्रबंधन का समर्थन करता है, सिवाय इसके कि यह समर्थन नहीं करता है। तो क्या, मुझे संकीर्ण उपयोग के लिए 2 gui का उपयोग करना चाहिए? अभी भी जवाब से सहमत नहीं हो सकते।