nothing added to commit but untracked files present
Git एक डिस्ट्रिब्यूटेड वर्जन कंट्रोल सिस्टम है। इसका मतलब है कि आप एक रिपॉजिटरी की स्थानीय कॉपी बना सकते हैं और उस रिपॉजिटरी में अपने स्वयं के परिवर्तन कर सकते हैं। ये परिवर्तन मुख्य प्रोजेक्ट में तब तक प्रतिबिंबित नहीं होते जब तक आप उन्हें कमिट नहीं करते।
जब आप रिमोट सर्वर से कोड पुल करते हैं, तो सुनिश्चित करें कि आपकी स्थानीय मशीन पर सभी फ़ाइलें Git स्टेजिंग एरिया का हिस्सा हैं, या कमिट का हिस्सा हैं। ऐसा इसलिए है क्योंकि Git को यह जानने की आवश्यकता है कि कौन सी फ़ाइलें रिपॉजिटरी का हिस्सा हैं।
एक रिपॉजिटरी पर git pull कमांड निष्पादित करना जहां आपने हर फ़ाइल को स्टेजिंग एरिया या कमिट में नहीं जोड़ा है, का परिणाम निम्नलिखित त्रुटि में होगा:
nothing added to commit but untracked files present
अनट्रैक्ड फ़ाइलें: एक परिचय
अनट्रैक्ड फ़ाइलें प्रोजेक्ट के अंदर की फ़ाइलें हैं जिन्हें Git के साथ कॉन्फिगर किया गया है, लेकिन Git रिपॉजिटरी का हिस्सा नहीं बनी हैं।
फ़ाइलें केवल तभी Git रिपॉजिटरी का हिस्सा बनती हैं जब आप उन्हें "git add" कमांड का उपयोग करके जोड़ते हैं। यह आपको अपनी स्थानीय मशीन पर फ़ाइलें बनाने और संशोधित करने देता है जिन्हें रिपॉजिटरी में डेवलपमेंट की एक लाइन का हिस्सा नहीं बनना पड़ता।
अनट्रैक्ड फ़ाइलों को या तो किसी प्रोजेक्ट में जोड़ा जाना चाहिए, या .gitignore फ़ाइल में नियम का उपयोग करके अनदेखा किया जाना चाहिए।
समाधान
इस त्रुटि के दो संभावित समाधान हैं।
पहला समाधान सभी अनट्रैक्ड फ़ाइलों को Git रिपॉजिटरी में जोड़ना है। git add कमांड का उपयोग करके ऐसा करें:
git add file_to_add.md
यह फ़ाइल को स्टेजिंग एरिया में ले जाएगा। जब आप फ़ाइल को स्टेजिंग एरिया में जोड़ते हैं, तो यह ट्रैक्ड हो जाती है। ऐसा इसलिए है क्योंकि स्टेजिंग एरिया में सभी फ़ाइलें अगले कमिट में जोड़ी जाती हैं जो आप बनाते हैं, जब तक कि उन्हें हटा नहीं दिया जाता। Git को इन फ़ाइलों को ट्रैक करने की आवश्यकता है ताकि उन्हें कमिट में जोड़ा जा सके।
दूसरा विकल्प उन फ़ाइलों को अनदेखा करना है जिन्हें आपने अपने रिपॉजिटरी में जोड़ा है। यह विकल्प सबसे अच्छा लिया जाता है यदि आप नहीं चाहते कि आपके द्वारा बनाई गई फ़ाइलें Git रिपॉजिटरी का हिस्सा बनें। यह कॉन्फिगरेशन फ़ाइलों के लिए आम है जो API कुंजी या स्थानीय डिपेंडेंसी स्टोरेज फ़ोल्डर स्टोर करती हैं।
आप अपने प्रोजेक्ट में .gitignore फ़ाइल में एक प्रविष्टि जोड़कर फ़ाइलों को अनदेखा कर सकते हैं:
file_to_add.md directory/
आप अपने प्रोजेक्ट में किसी भी डायरेक्टरी में gitignore फ़ाइल रख सकते हैं। अपने रिपॉजिटरी के रूट फ़ोल्डर में .gitignore रखना सबसे अच्छा है ताकि इसे एक्सेस करना आसान हो। .gitignore फ़ाइल में सभी नियम उस फ़ोल्डर के भीतर फ़ाइलों और फ़ोल्डर्स पर पुनरावर्ती रूप से लागू होंगे जिसमें .gitignore फ़ाइल स्टोर की गई है।
अब जब हमने त्रुटि हल कर ली है, तो हम git pull कमांड का उपयोग करके Git रिपॉजिटरी का नवीनतम संस्करण पुल कर सकते हैं:
git pull
यह कमांड सफल होना चाहिए क्योंकि हम अब प्रोजेक्ट फ़ोल्डर में मौजूद सभी फ़ाइलों को ट्रैक या अनदेखा कर रहे हैं।
निष्कर्ष
"nothing added to commit but untracked files present" त्रुटि तब उत्पन्न होती है जब आप रिपॉजिटरी की अपनी स्थानीय वर्किंग कॉपी में नई फ़ाइलें बनाते हैं और रिपॉजिटरी का नया संस्करण पुल करने से पहले उन्हें स्टेजिंग एरिया में जोड़ना भूल जाते हैं।
इस त्रुटि को ठीक करने के लिए, या तो त्रुटि पैदा करने वाली फ़ाइलों को स्टेजिंग एरिया में जोड़ें या .gitignore फ़ाइल का उपयोग करके उन्हें अनदेखा करें। अब आपके पास इस सामान्य Git त्रुटि को पेशेवर की तरह ठीक करने का ज्ञान है।