मुख्य सामग्री पर जाएँ

Git Clean: बिना ट्रैक की गई फ़ाइलें हटाएँ और रेपो को सुव्यवस्थित रखें

git clean में महारत हासिल करें और बिना ट्रैक की गई फ़ाइलें व डायरेक्टरी सुरक्षित रूप से हटाएँ। प्रमुख विकल्प, इंटरैक्टिव मोड, और डेटा लॉस से बचने के सर्वोत्तम तरीके सीखें।
· 8 मि॰ पढ़ें

AI के साथ खोजें

जब आप किसी Git रिपॉजिटरी पर काम करते हैं, तो ऐसी बिना ट्रैक की गई फ़ाइलें और डायरेक्टरी इकट्ठी होना आम है जो रिपॉजिटरी के वर्शन कंट्रोल सिस्टम का हिस्सा नहीं होतीं। इनमें अस्थायी फ़ाइलें, बिल्ड आर्टिफैक्ट्स, या अन्य स्थानीय रूप से बनाई गई लेकिन कमिट न की गई फ़ाइलें शामिल हो सकती हैं। समय के साथ, ये फ़ाइलें आपके वर्किंग डायरेक्टरी को अव्यवस्थित कर सकती हैं, जिससे एक साफ़-सुथरा और संगठित कार्यस्थल बनाए रखना कठिन हो जाता है।

इस समस्या का समाधान करने के लिए, Git git clean कमांड प्रदान करता है, जो बिना ट्रैक की गई फ़ाइलें और डायरेक्टरी हटाता है। इस गाइड में, मैं आपको दिखाऊँगा कि git clean को सुरक्षित रूप से कैसे उपयोग करें, इसके विभिन्न विकल्प क्या हैं, और अनचाही फ़ाइलें हटने से कैसे बचें—साथ ही अपनी Git रिपॉजिटरी को सुव्यवस्थित रखें। आगे सीखने के लिए, मैं आपको हमारे Foundations of Git और Introduction to GitHub Concepts कोर्स लेने की सलाह देता हूँ, ताकि आप वर्शन कंट्रोल और Git व GitHub के बीच के अंतर के बारे में सीख सकें।

git clean को समझना

git clean कमांड Git में एक उपयोगी टूल है जो वर्किंग डायरेक्टरी से बिना ट्रैक की गई फ़ाइलें हटाता है। यह तब उपयोगी है जब आपको अपनी वर्किंग डायरेक्टरी को एक स्वच्छ अवस्था में रीसेट करना हो—जैसे ब्रांच स्विच करने से पहले या ऐसे बिल्ड प्रोसेस के बाद जो अस्थायी फ़ाइलें बनाते हैं। हालाँकि, git clean का उपयोग सावधानी से करना चाहिए क्योंकि यह बिना ट्रैक की गई फ़ाइलें और डायरेक्टरी स्थायी रूप से डिलीट कर देता है—उन्हें ट्रैश या रीसायकल बिन में नहीं भेजता।

git reset या git checkout के विपरीत, जो ट्रैक की गई फ़ाइलों में बदलाव करते हैं, git clean सख्ती से उन फ़ाइलों और डायरेक्टरी से संबंधित है जो वर्शन कंट्रोल के अंतर्गत नहीं हैं। इनमें शामिल हैं:

  • बिल्ड से बनाई गई अस्थायी फ़ाइलें

  • लॉग फ़ाइलें या कैश्ड डेटा

  • .gitignore में सूचीबद्ध फ़ाइलें (यदि -x विकल्प के साथ स्पष्ट रूप से निर्दिष्ट किया गया हो)

git clean कमांड एक सुव्यवस्थित वर्किंग डायरेक्टरी बनाए रखने में सहायक है और git reset तथा git checkout जैसे अन्य Git कमांड्स को पूरक करता है, जो ट्रैक की गई फ़ाइलों में बदलावों का प्रबंधन करते हैं।

मुझे Complete Git Cheat Sheet आम Git कमांड्स के लिए एक बढ़िया संदर्भ मार्गदर्शिका लगता है।

git clean के सामान्य उपयोग

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

बिना ट्रैक की गई फ़ाइलें हटाना

किसी Git रिपॉजिटरी में काम करते समय, बिना ट्रैक की गई फ़ाइलें समय के साथ जमा हो सकती हैं। उन्हें हटाने में ये विकल्प मदद करते हैं:

  • git clean -f: बिना ट्रैक की गई फ़ाइलों को बलपूर्वक हटाता है।

  • git clean -fd: बिना ट्रैक की गई फ़ाइलें और बिना ट्रैक की गई डायरेक्टरी दोनों हटाता है।

  • git clean -fx: बिना ट्रैक और इग्नोर की गई फ़ाइलें (जैसे .gitignore में सूचीबद्ध) हटाता है।

हालाँकि, -fx विकल्प का उपयोग करते समय सावधानी बरतें क्योंकि यह इग्नोर की गई फ़ाइलों को भी हटाता है। कमांड चलाने से पहले हमेशा ड्राई रन (git clean -n) से जाँच लें।

इंटरैक्टिव मोड

git clean -i कमांड इंटरैक्टिव मोड सक्षम करता है, जिससे उपयोगकर्ता बिना ट्रैक की गई फ़ाइलों को चुनकर हटा सकते हैं। जब आप तय करना चाहें कि किन फ़ाइलों या डायरेक्टरी को हटाना है, तब यह मोड उपयोगी है।

मान लीजिए आप ऐसे प्रोजेक्ट पर काम कर रहे हैं जहाँ आपने Olympics फ़ोल्डर में बदलाव पहले ही सहेज लिए हैं। हालाँकि, आपने नए डेटा स्रोत जोड़े हैं, जिनके नाम 2024_Data और 2025_Data हैं। यदि आप git clean -i कमांड चलाते हैं, तो आपको एक प्रॉम्प्ट मिलेगा जो आपको बिना ट्रैक बदला हुआ कंटेंट हटाने के लिए निम्नलिखित विकल्पों में से चुनने देगा।

  • clean: चयनित फ़ाइलें हटाएँ

  • filter: साफ़ करने के लिए फ़ाइलों का पैटर्न निर्धारित करें

  • select: नंबर के आधार पर व्यक्तिगत फ़ाइलें चुनें

  • quit: कुछ भी हटाए बिना बाहर निकलें

git clean -i इंटरैक्टिव मोड।

git clean -i इंटरैक्टिव मोड। चित्र: लेखक।

सुरक्षा के लिए ड्राई रन

git clean -n विकल्प का उपयोग एक उपयोगी सुरक्षा उपाय है क्योंकि यह "ड्राई रन" करता है—बिना कुछ डिलीट किए उन बिना ट्रैक की गई फ़ाइलों और डायरेक्टरी की सूची दिखाता है जिन्हें हटाया जाएगा। इससे आप कमांड चलाने से पहले बदलावों की समीक्षा कर सकते हैं।

नीचे दिए उदाहरण में, git clean -n कमांड उन फ़ाइलों की सूची देता है जिन्हें हटाया जाना चाहिए, पर उन्हें हटाता नहीं है।

ड्राई रन के लिए git clean -n।

ड्राई रन के लिए git clean -n। चित्र: लेखक।

git reset के साथ संयोजन

एक Git वर्किंग डायरेक्टरी को पूरी तरह रीसेट करने के लिए, आप git reset और git clean को एक साथ उपयोग कर सकते हैं, जहाँ:

  • git reset --hard: ट्रैक की गई फ़ाइलों को अंतिम कमिटेड स्थिति में रीसेट करता है और किसी भी स्थानीय बदलाव को हटा देता है।

  • git clean -fd: बिना ट्रैक की गई फ़ाइलें और डायरेक्टरी हटाता है, केवल कमिटेड फ़ाइलें छोड़ देता है।

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

स्थानीय बदलाव ओवरराइट करने के सर्वोत्तम तरीकों के लिए हमारा Git Pull Force: How to Overwrite a Local Branch With Remote ट्यूटोरियल देखें।

git clean उपयोग करने की चरण-दर-चरण गाइड

अपनी Git रिपॉजिटरी को सुरक्षित रूप से साफ़ करने और अनचाही बिना ट्रैक की गई फ़ाइलें व डायरेक्टरी हटाने के लिए इन चरणों का पालन करें।

चरण 1: वर्तमान स्थिति जाँचें

साफ़-सफ़ाई से पहले, git status चलाएँ ताकि रिपॉजिटरी की वर्तमान स्थिति देखें और पता लगाएँ कि कौन-सी फ़ाइलें बिना ट्रैक की गई हैं।

git status

रिपॉजिटरी की वर्तमान स्थिति जाँचने के लिए git status।

रिपॉजिटरी की वर्तमान स्थिति जाँचने के लिए git status। चित्र: लेखक।

चरण 2: क्या हटेगा, पहले देखें

कोई भी हटाने वाला कमांड चलाने से पहले, git clean -n का उपयोग करें ताकि पता चल सके कि क्या हटाया जाएगा।

git clean -n

क्या डिलीट होगा, यह देखने के लिए git clean -n।

क्या डिलीट होगा, यह देखने के लिए git clean -n। चित्र: लेखक।

चरण 3: बिना ट्रैक की गई फ़ाइलें हटाएँ

यदि प्रीव्यू सही लगे, तो बिना ट्रैक की गई फ़ाइलें हटाने के लिए git clean -f चलाएँ।

git clean -f

git clean -f का उपयोग कर बिना ट्रैक बदलाव हटाएँ।

git clean -f का उपयोग कर बिना ट्रैक बदलाव हटाएँ। चित्र: लेखक।

चरण 4: बिना ट्रैक की गई डायरेक्टरी हटाएँ

बिना ट्रैक की गई डायरेक्टरी हटाने के लिए git clean -fd का उपयोग करें।

git clean -fd

git clean -fd का उपयोग कर बिना ट्रैक डायरेक्टरी हटाएँ।

git clean -fd का उपयोग कर बिना ट्रैक डायरेक्टरी हटाएँ। चित्र: लेखक।

चरण 5: इग्नोर की गई फ़ाइलें हटाएँ

बिना ट्रैक और इग्नोर की गई दोनों तरह की फ़ाइलें हटाने के लिए git clean -fx कमांड का उपयोग करें।

git clean -fx

चरण 6: चयनात्मक सफ़ाई के लिए इंटरैक्टिव मोड उपयोग करें

अधिक नियंत्रण के लिए, इंटरैक्टिव रिमूवल हेतु git clean -i का उपयोग करें। यह मोड आपको चुनने देता है कि किन फ़ाइलों को अलग-अलग हटाना है।

Git clean -i

चयनात्मक सफ़ाई के लिए git clean -i इंटरैक्टिव मोड।

चयनात्मक सफ़ाई के लिए git clean -i इंटरैक्टिव मोड। चित्र: लेखक।

git clean बनाम अन्य Git कमांड्स

git clean कमांड की अक्सर अन्य Git कमांड्स से तुलना की जाती है जो फ़ाइलों में बदलाव या रीसेट करते हैं। नीचे दी गई तालिका प्रमुख अंतर दर्शाती है:

कमांडकार्य
git cleanबिना ट्रैक की गई फ़ाइलें और डायरेक्टरी स्थायी रूप से हटाता है।
git resetट्रैक की गई फ़ाइलों को पिछले स्टेट में रीसेट करता है, स्टेज्ड और कमिटेड बदलावों को प्रभावित करता है।
git checkout (या git restore)ट्रैक की गई फ़ाइलों में बदलावों को त्यागता है पर उन्हें हटाता नहीं है।
git stashट्रैक और बिना ट्रैक दोनों तरह के बदलावों को बाद में उपयोग के लिए अस्थायी रूप से सहेजता है।

Git Clean के सर्वोत्तम अभ्यास

git clean को सुरक्षित और प्रभावी ढंग से उपयोग करने के लिए, निम्नलिखित सर्वोत्तम अभ्यास अपनाएँ:

  • डिलीट करने से पहले ड्राई रन (-n) उपयोग करें: हमेशा git clean चलाने से पहले git clean -n विकल्प से ड्राई रन करें। इससे आप बिना कुछ हटाए देख सकते हैं कि कौन-सी फ़ाइलें हटेंगी।

  • इग्नोर की गई फ़ाइलों के प्रति सजग रहें: git clean का उपयोग करते समय -x विकल्प के प्रति सावधान रहें, जो इग्नोर की गई फ़ाइलें हटाता है। इससे .gitignore में सूचीबद्ध महत्त्वपूर्ण कॉन्फ़िगरेशन फ़ाइलें भी डिलीट हो सकती हैं। यदि आपको इग्नोर की गई फ़ाइलें हटानी हों, तो git clean -fx कमांड का उपयोग करें।

  • पूर्ण सफ़ाई के लिए Git Reset के साथ संयोजन करें: अपनी रिपॉजिटरी को पूरी तरह रीसेट करने हेतु git reset को git clean के साथ मिलाएँ, जहाँ git reset --hard ट्रैक की गई फ़ाइलों को अंतिम कमिटेड स्टेट में लाता है और git clean -fd बिना ट्रैक की गई फ़ाइलें व डायरेक्टरी हटाता है।

  • सुरक्षित डिलीशन के लिए इंटरैक्टिव मोड (-i) अपनाएँ: फ़ाइलें आँख मूँदकर हटाने के बजाय, इंटरैक्टिव मोड (git clean -i) का उपयोग करें ताकि आप समीक्षा कर सकें और किन्हें हटाना है चुन सकें।

संभावित जोखिम और सावधानियाँ

git clean का उपयोग सावधानी से न किया जाए तो जोखिम भरा हो सकता है, क्योंकि यह फ़ाइलों को कहीं सहेजे बिना स्थायी रूप से डिलीट कर देता है। यहाँ कुछ प्रमुख जोखिम और सावधानियाँ दी गई हैं:

  • फ़ाइलें स्थायी रूप से डिलीट होती हैं: git stash के विपरीत, जो बदलावों को अस्थायी रूप से सहेजता है, git clean बिना ट्रैक की गई फ़ाइलें और डायरेक्टरी स्थायी रूप से डिलीट कर देता है। एक बार हटने पर, ये फ़ाइलें Git के माध्यम से पुनर्प्राप्त नहीं की जा सकतीं। यदि आपको बाद में उनकी ज़रूरत पड़ सकती है, तो git clean चलाने से पहले उन्हें स्टैश करें या बैकअप लें।

  • -x विकल्प के साथ सावधानी बरतें: git clean -fx इग्नोर की गई फ़ाइलें हटाता है, जिसमें .gitignore में सूचीबद्ध महत्त्वपूर्ण कॉन्फ़िगरेशन फ़ाइलें या node_modules/ और venv/ जैसी डिपेंडेंसी कैश भी हो सकती हैं। इन्हें गलती से हटाने से बिल्ड या डेवलपमेंट एन्वायरमेंट टूट सकते हैं, इसलिए इस विकल्प का उपयोग केवल ज़रूरत होने पर करें।

  • पहले ड्राई रन चलाएँ: हमेशा git clean -f चलाने से पहले git clean -n के साथ ड्राई रन करें। यह कदम दिखाता है कि कौन-सी फ़ाइलें डिलीट होंगी और महत्त्वपूर्ण फ़ाइलों का आकस्मिक हटना रोकने में मदद करता है।

  • वैकल्पिक तरीक़े: कुछ स्थितियों में git clean की बजाय git stash का उपयोग बेहतर हो सकता है। git stash -u कमांड बिना ट्रैक की गई फ़ाइलों को (इग्नोर की गई फ़ाइलों को छोड़कर) स्टैश कर देता है ताकि बाद में पुनर्प्राप्ति संभव हो, और ज़रूरत पड़ने पर git stash pop स्टैश किए बदलाव लौटा देता है। यह तरीक़ा तब उपयोगी है जब आपको ब्रांच बदलनी हो या कार्यस्थल को साफ़ करना हो, पर बदलाव स्थायी रूप से खोना न चाहें।

निष्कर्ष

एक सुव्यवस्थित कोडबेस बारीकी पर ध्यान, दक्षता, और डिजिटल एसेट्स का जिम्मेदार प्रबंधन दर्शाता है। नियोक्ता ऐसे डेवलपर्स की तलाश में रहते हैं जो सर्वोत्तम अभ्यास समझते हों—जैसे फ़ाइलें डिलीट करने से पहले git clean -n का उपयोग, -x के साथ इग्नोर की गई फ़ाइलों पर सावधानी, और git stash जैसे सुरक्षित विकल्पों का उपयोग।

DataCamp के कोर्स करना न सिर्फ़ सीखने का बढ़िया तरीका है बल्कि यह नियोक्ताओं को यह संकेत भी देता है कि आप सॉफ़्टवेयर विकास को गंभीरता से लेते हैं। इसी उद्देश्य से, मैं हमारे Top 20 Git Interview Questions and Answers for All Levels ब्लॉग पोस्ट का अध्ययन करने और हमारा नया Git Fundamentals स्किल ट्रैक लेने की सिफारिश करता हूँ, ताकि आप Git के हर पहलू में निपुण बन सकें।

Allan Ouko

लेखक

Allan Ouko

डेटा एनालिटिक्स, बिज़नेस इंटेलिजेंस और डेटा साइंस में व्यावहारिक अनुभव रखने वाला डेटा साइंस तकनीकी लेखक। मैं SQL, Python, Power BI, Databricks और डेटा इंजीनियरिंग पर व्यावहारिक, उद्योग-केंद्रित सामग्री लिखता/लिखती हूँ, जो वास्तविक दुनिया की एनालिटिक्स कार्य से जुड़ी होती है। मेरी लेखनी तकनीकी गहराई और व्यावसायिक प्रभाव के बीच पुल का काम करती है, जिससे पेशेवरों को डेटा को आत्मविश्वासपूर्ण निर्णयों में बदलने में मदद मिलती है. 

Git Clean FAQs

git clean क्या करता है?

git clean आपकी Git वर्किंग डायरेक्टरी से बिना ट्रैक की गई फ़ाइलें और डायरेक्टरी हटाता है।

क्या git clean कमिट की गई फ़ाइलें डिलीट करता है?

नहीं, git clean केवल बिना ट्रैक की गई फ़ाइलें हटाता है और कमिटेड या स्टेज्ड फ़ाइलों को प्रभावित नहीं करता।

डिलीट करने से पहले फ़ाइलें कैसे प्रीव्यू करें?

हटाने से पहले क्या डिलीट होगा यह देखने के लिए git clean -n का उपयोग करें।

git clean -f और git clean -fd में क्या अंतर है?

git clean -f बिना ट्रैक की गई फ़ाइलें हटाता है, जबकि git clean -fd बिना ट्रैक की गई डायरेक्टरी भी हटाता है।

git clean, git reset से कैसे अलग है?

git clean बिना ट्रैक की गई फ़ाइलें हटाता है, जबकि git reset ट्रैक की गई फ़ाइलों को पिछले स्टेट में बहाल करता है।

क्या चयनात्मक रूप से फ़ाइलें हटाने का कोई तरीका है?

हाँ, इंटरैक्टिव मोड के लिए git clean -i का उपयोग करें, जो आपको हटाने के लिए फ़ाइलें चुनने देता है।

विषय