git rm कमांड एक फाइल को Git रिपॉजिटरी से हटाता है। यह कमांड फाइल को आपके फाइल सिस्टम से हटाता है और फिर उसे Git रिपॉजिटरी द्वारा ट्रैक की जाने वाली फाइलों की सूची से हटाता है। --cached फ्लैग आपको फाइल को अपने फाइल सिस्टम पर हटाए बिना Git रिपॉजिटरी से हटाने देता है।
आप किसी फाइल को Git रिपॉजिटरी से कैसे हटाते हैं? यह एक अच्छा सवाल है। यह हमेशा ऐसा नहीं होता कि आप चाहते हैं कि कोई फाइल हमेशा के लिए रिपॉजिटरी का हिस्सा बनी रहे। आप तय कर सकते हैं कि कोई फाइल अब किसी प्रोजेक्ट के लिए आवश्यक नहीं है, और इसलिए आप इसे Git रिपॉजिटरी से हटाना चाहेंगे।
किसी फाइल को Git रिपॉजिटरी से हटाने के लिए, आप git rm कमांड का उपयोग कर सकते हैं। यह git add कमांड के विपरीत है; यह फाइलों को हटाता है।
इस गाइड में, हम चर्चा करने जा रहे हैं कि git rm कमांड का उपयोग कैसे करें। हम आपको दिखाने के लिए git rm कमांड के एक उदाहरण के माध्यम से चलेंगे कि यह कैसे काम करता है। आइए शुरू करें!
Git में फाइलों को कैसे मैनेज किया जाता है
इससे पहले कि हम चर्चा करें कि git rm कमांड का उपयोग कैसे करें, हमें Git वर्जन कंट्रोल सिस्टम में फाइलों को कैसे मैनेज किया जाता है, यह समझने की आवश्यकता है।
Git रिपॉजिटरी के अंदर फाइलें या तो ट्रैक्ड या अनट्रैक्ड हो सकती हैं।
ट्रैक्ड फाइलें वे फाइलें हैं जिन्हें git कमिट में शामिल किया गया है। अनट्रैक्ड फाइलें वे फाइलें हैं जिन्हें अभी तक रिपॉजिटरी में कमिट नहीं किया गया है। आमतौर पर, अनट्रैक्ड फाइलें वे हैं जिन्हें आप कमिट बनाने से पहले बनाते हैं।
किसी फाइल को Git कमिट में जोड़ने के लिए, आप git add कमांड का उपयोग कर सकते हैं। यह इसे एक ट्रैक्ड फाइल बना देगा। यदि आप किसी फाइल को ट्रैक होने से रोकना चाहते हैं, तो आप git rm कमांड का उपयोग कर सकते हैं।
git rm कमांड एक फाइल या फाइलों के समूह को Git रिपॉजिटरी से हटाता है। एक फाइल को आपकी मशीन और Git रिपॉजिटरी दोनों से हटा दिया जाता है। फाइल को अपने लोकल मशीन पर संरक्षित करने के लिए, --cached फ्लैग का उपयोग करें।
किसी भी फ्लैग के बिना, यह कमांड एक फाइल को Git रिपॉजिटरी और आपके लोकल वर्किंग डायरेक्टरी दोनों से हटा देगा। इसका मतलब है कि यह एक फाइल को डिलीट करता है, ठीक वैसे ही जैसे लिनक्स rm कमांड कंप्यूटर से फाइल डिलीट करता है।
इस कमांड का सबसे सरल उपयोग एक फाइल को हटाना है। आइए एक Git रिपॉजिटरी से settings.json नामक एक फाइल को हटाएं:
यह कमांड settings.json को हमारे रिपॉजिटरी के ट्रैकिंग एरिया से हटा देता है। आप इसी कमांड का उपयोग कई फाइलों को हटाने के लिए कर सकते हैं। ऐसा करने के लिए, उन फाइलों या फ़ोल्डर्स के नामों को स्पेस से अलग करें जिन्हें आप हटाना चाहते हैं:
git rm settings.json .env
यह settings.json और .env फाइलों को एक रिपॉजिटरी से हटा देगा।
डिफ़ॉल्ट रूप से, जब आप अनस्टेज करने और पथ हटाने के लिए rm कमांड चलाते हैं तो Git एक सुरक्षा जांच करेगा। यह सुनिश्चित करेगा कि आपकी वर्तमान ब्रांच पर फाइलें स्टेजिंग इंडेक्स में उन जैसी ही हैं। आप -f, या --force, फ्लैग का उपयोग करके इस व्यवहार को ओवरराइड कर सकते हैं:
आपको -f फ्लैग का उपयोग केवल तब करना चाहिए जब आप पूरी तरह से सुनिश्चित हों कि आप किसी फाइल को हटाना चाहते हैं। अन्यथा, बाद में मर्ज कन्फ्लिक्ट हो सकता है। यदि ऐसा होता है, तो आपकी मदद के लिए हमारे गाइड का उपयोग करें कि मर्ज कन्फ्लिक्ट को कैसे हल करें।
Git rm --cached
Git rm --cached फ्लैग फाइल को स्टेजिंग एरिया से हटाता है। वर्किंग डायरेक्टरी की फाइलें बरकरार रहेंगी। इसका मतलब है कि आपके पास अभी भी फाइल की एक लोकल कॉपी होगी। फाइल को आपके Git प्रोजेक्ट को ट्रैक करने वाले इंडेक्स से हटा दिया जाएगा।
आइए settings.json वर्किंग ट्री फाइल को अपने रिपॉजिटरी से हटाएं लेकिन इसे अपने प्रोजेक्ट डायरेक्टरी में रखें:
git rm --cached settings.json
जब हम अपना अगला कमिट पुश करेंगे, तो settings.json फाइल हटा दी जाएगी।
जब तक कोई फाइल आपके लोकल वर्किंग डायरेक्टरी में मौजूद है, आप इसे अपने Git रिपॉजिटरी में वापस जोड़ सकते हैं। आप git add कमांड का उपयोग करके ऐसा कर सकते हैं। git add के बारे में अधिक पढ़ने के लिए हमारे git add कमांड ट्यूटोरियल को पढ़ें।
git rm कमांड को कैसे पूर्ववत करें
git rm कमांड केवल स्टेजिंग एरिया और वर्किंग डायरेक्टरी को तब तक अपडेट करता है जब तक कोई कमिट नहीं किया गया है। इसका मतलब है कि आप कमांड को पूर्ववत कर सकते हैं। git rm कमांड को पूर्ववत करने के लिए, आप git reset का उपयोग करके अपने रिपॉजिटरी को अंतिम कमिट पर रीसेट कर सकते हैं:
Git HEAD कमिट हमारे रिपॉजिटरी में अंतिम कमिट को दर्शाता है। इस प्रकार, यह कमांड हमारे रिपॉजिटरी को अंतिम कमिट पर वापस लाता है।
आप git rm कमांड को पूर्ववत कर सकते हैं भले ही आपने पहले से ही परिवर्तनों को रिपॉजिटरी में कमिट कर दिया हो। ऐसा करने के लिए, आप git reset कमांड का उपयोग कर सकते हैं और उस कमिट का हैश निर्दिष्ट कर सकते हैं जिस पर आप वापस लौटना चाहते हैं:
git reset a7e3cce9637c74281e6590003b39d3990bbb2731
हम एक Git रिपॉजिटरी को उसके पिछले कमिट पर वापस ला रहे हैं। "reset" शब्द के बाद अक्षरों की स्ट्रिंग अंतिम कमिट के लिए हैश है।
एक बार जब हम रिपॉजिटरी को वापस लाते हैं, तो हम देख सकते हैं कि कमिट से पहले वह रिपॉजिटरी कैसी दिखती थी। इसका मतलब है कि हमारी फाइल अभी भी स्टेज्ड होगी। दूसरे शब्दों में, हमारा git rm कमांड पूर्ववत हो गया होगा।
Git rm बनाम rm
git rm कमांड एक फाइल को आपकी वर्किंग मशीन और Git रिपॉजिटरी दोनों से हटाता है। दूसरी ओर, rm कमांड एक फाइल को Git रिपॉजिटरी से नहीं हटाता है।
यदि आप किसी फाइल को अपने Git रिपॉजिटरी से हटाना चाहते हैं, तो आपको git rm का उपयोग करना होगा। ऐसा इसलिए है क्योंकि git rm कमांड एक फाइल को Git रिपॉजिटरी से हटाने के निर्देशों को निष्पादित करता है। लिनक्स सिस्टम पर सभी फाइलें Git रिपॉजिटरी में नहीं होती हैं, इसलिए लिनक्स rm कमांड फाइलों को Git रिपॉजिटरी से नहीं हटाता है।
निष्कर्ष
git rm कमांड आपको एक फाइल को Git रिपॉजिटरी और आपके वर्किंग डायरेक्टरी से हटाने की अनुमति देता है। यदि आप केवल अपनी Git रिपॉजिटरी से फाइल हटाना चाहते हैं, तो आप --cached फ्लैग का उपयोग कर सकते हैं।
अब आप कमांड लाइन विशेषज्ञ की तरह git rm कमांड का उपयोग करने के लिए तैयार हैं!
Git के साथ काम करने के बारे में अधिक जानने के लिए, हमारा How to Learn Git गाइड पढ़ें।