changes not staged for commit
Git रिपॉजिटरी में फ़ाइलें या तो अनदेखी की जा सकती हैं, स्टेजिंग एरिया में हो सकती हैं, या कमिट का हिस्सा हो सकती हैं।
अनदेखी की गई फ़ाइलें Git रिपॉजिटरी के रिकॉर्ड में शामिल नहीं हैं। स्टेजिंग एरिया में फ़ाइलें वे हैं जिन्हें अगले कमिट में जोड़ा जाएगा।
स्टेजिंग एरिया महत्वपूर्ण है क्योंकि यह आपको चुनने देता है कि कौन सी फ़ाइलें कमिट में जोड़ी जानी चाहिए और कौन सी नहीं। आप कमिट बनाने से पहले किसी भी समय स्टेजिंग एरिया से फ़ाइलें जोड़ या हटा सकते हैं।
इसका मतलब है कि स्टेजिंग एरिया एक तरह का ट्राइएज स्पेस है। यदि आपको पता चलता है कि एक अतिरिक्त फ़ाइल को कमिट में जोड़ा जाना चाहिए, तो आप इसे स्टेजिंग में जोड़ सकते हैं। फिर, एक बार जब आप सुनिश्चित हो जाते हैं कि आपने स्टेजिंग एरिया में सभी परिवर्तन जोड़ दिए हैं, तो आप एक कमिट बना सकते हैं।
एक उदाहरण परिदृश्य
यह संदेश प्राप्त करने के लिए, हमें पहले Git रिपॉजिटरी में एक फ़ाइल बदलनी होगी। मान लीजिए हमारे पास README.md नामक एक खाली फ़ाइल के साथ एक Git रिपॉजिटरी है। हम इसकी सामग्री को निम्नलिखित दिखाने के लिए बदलने जा रहे हैं:
# Example Repo
हमने अपने रिपॉजिटरी में एक फ़ाइल बदल दी है। अगला, हम git status कमांड चलाने जा रहे हैं ताकि बदली हुई सभी फ़ाइलों का सारांश देख सकें:
git status
आइए देखें कि यह कमांड क्या प्रदर्शित करता है:
On branch master Your branch is up to date with 'origin/master'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: README.md
Git कमांड लाइन हमें बताती है कि हम master ब्रांच देख रहे हैं और हमारी वर्तमान ब्रांच हमारे रिमोट ब्रांच के साथ अद्यतित है। हमने एक फ़ाइल बदली है: README.md। यह फ़ाइल अभी तक स्टेजिंग एरिया या कमिट में नहीं जोड़ी गई है। हमारा वर्किंग डायरेक्टरी संशोधित है।
इस संदेश को दूर करने के लिए, हमें README.md फ़ाइल को स्टेजिंग एरिया में जोड़ना होगा। हम git add कमांड का उपयोग करके ऐसा कर सकते हैं:
git add README.md
यह कमांड हमें कमिट में जोड़ने के लिए फ़ाइलों को चुनिंदा रूप से चुनने देता है। अगला, हम उन फ़ाइलों के साथ एक कमिट बना सकते हैं जिन्हें हमने बदला है जो वर्तमान में स्टेजिंग एरिया में हैं। आइए कमिट बनाने के लिए git commit चलाएं:
git commit -m "docs: Update README.md"
यह रिपॉजिटरी की वर्तमान स्थिति का एक रिकॉर्ड बनाएगा जिसमें स्टेजिंग एरिया में हमारे द्वारा जोड़े गए सभी परिवर्तन शामिल हैं। यदि आप रिमोट वर्जन वाले रिपॉजिटरी के साथ काम कर रहे हैं, तो आप इसे बनाने के बाद अपने कमिट को रिपॉजिटरी में पुश करना चाह सकते हैं:
git push
हमारा परिवर्तन अब हमारे रिपॉजिटरी के स्थानीय और रिमोट दोनों संस्करणों में किया गया है।
आइए फिर से ब्रांच पर git status पर एक नज़र डालें:
On branch master Your branch is up to date with 'origin/master'. nothing to commit, working tree clean
कमांड हमें बताता है कि कोई परिवर्तन नहीं है जिसे कमिट या स्टेजिंग एरिया में नहीं जोड़ा गया है। इसका मतलब है कि हमने अपने रिपॉजिटरी को सफलतापूर्वक बदल दिया है। अब हमारे रिपॉजिटरी में एक अतिरिक्त कमिट है जिसमें README.md में किए गए परिवर्तन शामिल हैं।
निष्कर्ष
"changes not staged for commit" संदेश तब दिखाई देता है जब आप "git status" कमांड चलाते हैं और आपके पास एक फ़ाइल होती है जिसे बदल दिया गया है लेकिन अभी तक स्टेजिंग एरिया में नहीं जोड़ा गया है।
यह एक त्रुटि संदेश नहीं है, बल्कि एक अधिसूचना है कि आपने ऐसी फ़ाइलें बदली हैं जो स्टेजिंग एरिया या कमिट में नहीं हैं। आप अपनी फ़ाइलों को कमिट में जोड़कर और उन्हें रिपॉजिटरी में कमिट करके इस संदेश को दूर कर सकते हैं। अब आपके पास इस सामान्य Git त्रुटि को पेशेवर डेवलपर की तरह ठीक करने का ज्ञान है!