कोर्स
किसी जटिल Git प्रोजेक्ट पर काम करते समय यह ट्रैक खोना आसान है कि किन फाइलों में बदलाव हुए हैं, किन्हें स्टेज किया गया है, और कौन‑सी अब भी अनट्रैक्ड हैं। यहीं git status काम आता है। यह आवश्यक Git कमांड रिपोज़िटरी की मौजूदा स्थिति का स्पष्ट और व्यापक स्नैपशॉट देता है—यह दिखाते हुए कि किन फाइलों में बदलाव हुआ है, क्या कमिट के लिए तैयार है, और किस पर अभी ध्यान देना बाकी है।
चाहे आप मर्ज कॉन्फ्लिक्ट सुलझा रहे हों, स्टेज किए गए बदलावों की समीक्षा कर रहे हों, या कमिट से पहले कुछ छूटा न रह जाए यह सुनिश्चित कर रहे हों, git status आपको संगठित रहने के लिए जरूरी विज़िबिलिटी देता है।
इस गाइड में, मैं git status के आउटपुट के हर सेक्शन की व्याख्या करूंगा और उन्नत कस्टमाइज़ेशन पर चर्चा करूंगा, ताकि आप अपने वर्ज़न कंट्रोल वर्कफ़्लो पर बेहतर नियंत्रण पा सकें।
Git Status क्या है?
git status कमांड आपके Git रिपोज़िटरी की स्थिति का रियल‑टाइम सारांश देता है। खासतौर पर, यह वर्किंग डायरेक्टरी (आपकी लोकल फाइलें) और स्टेजिंग एरिया (जिसे इंडेक्स भी कहा जाता है) की तुलना आखिरी कमिट किए गए स्नैपशॉट से करता है। इससे आप देख सकते हैं कि किन फाइलों में बदलाव हुआ है, कौन‑से बदलाव स्टेज होकर कमिट के लिए तैयार हैं, और कौन‑सी नई फाइलें अब भी अनट्रैक्ड हैं।
git status चलाकर डेवलपर यह सत्यापित कर सकते हैं कि सही बदलाव स्टेज या कमिट हो रहे हैं, अनदेखे संपादन पकड़ सकते हैं, और अधूरे अपडेट शामिल होने से बच सकते हैं। यह खासतौर पर तब उपयोगी है जब आप कई ब्रांच प्रबंधित कर रहे हों या मर्ज कॉन्फ्लिक्ट सुलझा रहे हों, क्योंकि यह सटीक फीडबैक देता है कि Git क्या ट्रैक कर रहा है और क्या नहीं।
वर्किंग ट्री, स्टेजिंग एरिया, और रिपोज़िटरी हिस्ट्री के बीच इंटरैक्शन को git status कैसे दर्शाता है—यह समझना Git का प्रभावी उपयोग करने और आम गलतियों से बचने की कुंजी है।

ऊपर दिया गया डायग्राम वर्किंग डायरेक्टरी, स्टेजिंग एरिया और रिपोज़िटरी (कमिट हिस्ट्री) के बीच संबंध को दर्शाता है—साथ ही यह भी कि git status इसमें कैसे फिट बैठता है:
- अनस्टेज्ड बदलाव (वर्किंग डायरेक्टरी में संशोधित फाइलें) "Changes not staged for commit" के रूप में दिखते हैं।
- स्टेज्ड बदलाव (जो फाइलें
git addसे इंडेक्स में जोड़ी गई हैं) "Changes to be committed" के रूप में दिखाई देते हैं। - अनट्रैक्ड फाइलें (नई फाइलें जिन्हें Git ने पहले नहीं देखा) भी सूचीबद्ध होती हैं, ताकि आप उन्हें जोड़ें या अनदेखा करें।
- यदि आप मर्ज के बीच में हैं, तो
git statusआपको कॉन्फ्लिक्ट्स के बारे में बताएगा और अगला कदम क्या होना चाहिए यह भी बताएगा।
उदाहरण git status आउटपुट:
$ git status
On branch feature/login
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: src/auth.js
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: src/utils.js
Untracked files:
(use "git add <file>..." to include in what will be committed)
src/new-feature.js
वर्ज़न कंट्रोल में Git और उसकी भूमिका की व्यापक समझ के लिए, इस Git की संपूर्ण गाइड पर नज़र डालें।
Git Status का उपयोग कैसे करें
अपने वर्कफ़्लो में git status का प्रभावी रूप से लाभ उठाने के लिए यहां चरण‑दर‑चरण तरीका है।
यदि आपने अभी तक Git कॉन्फ़िगर नहीं किया है, तो यह सेटअप गाइड विभिन्न सिस्टम पर इंस्टॉलेशन और शुरुआती कॉन्फ़िगरेशन के चरण बताता है।
git status का बुनियादी उपयोग
- अपना टर्मिनल खोलें:
अपना पसंदीदा टर्मिनल या कमांड‑लाइन इंटरफ़ेस उपयोग करें। यह आपको Git कमांड चलाने और अपनी रिपोज़िटरी की स्थिति रियल‑टाइम में देखने की सीधी पहुंच देता है।
- अपने प्रोजेक्ट डायरेक्टरी पर जाएं:
cd कमांड का उपयोग करके उस फ़ोल्डर में जाएं जहां आपका Git प्रोजेक्ट मौजूद है।
cd /path/to/your/project
git statusचलाएं:
प्रोजेक्ट डायरेक्टरी के अंदर पहुंचने के बाद, निम्न कमांड चलाएं।
git status
जैसा कि हमने पहले देखा, Git आमतौर पर ऐसा आउटपुट देता है, जिसमें शामिल होते हैं:
- मौजूदा ब्रांच का नाम।
- स्टेज किए गए बदलावों की सूची जो कमिट होने के लिए तैयार हैं।
- संशोधित लेकिन अनस्टेज्ड फाइलों की सूची।
- कोई भी अनट्रैक्ड फाइल—नई फाइलें जिन्हें अभी Git में नहीं जोड़ा गया है।
शॉर्ट फ़ॉर्मैट का उपयोग
यदि आपको बिना अतिरिक्त विवरण के एक त्वरित स्नैपशॉट चाहिए, तो शॉर्ट फ़ॉर्मैट उपयोगी है:
git status --short
यह संक्षिप्त दृश्य प्रत्येक फाइल को एक पंक्ति में स्टेटस संकेतों के साथ सूचीबद्ध करता है, जो किसी खास बदलाव को ढूंढते समय या इस कमांड को स्क्रिप्ट में शामिल करते समय विशेष रूप से उपयोगी है।
उदाहरण आउटपुट:
M index.html
A new-script.js
?? temp.txt
आउटपुट को समझना:
- पहला अक्षर स्टेजिंग एरिया की स्थिति बताता है।
- दूसरा अक्षर वर्किंग डायरेक्टरी की स्थिति बताता है।
|
कोड |
अर्थ |
|
M |
संशोधित (Modified) |
|
A |
जोड़ा गया (Added) |
|
D |
हटाया गया (Deleted) |
|
?? |
अनट्रैक्ड फाइल |
|
MM |
दोनों चरणों में संशोधित |
|
AM |
पहले जोड़ा, फिर संशोधित |
git status में -u विकल्प समझना
-u विकल्प (--untracked-files का संक्षिप्त रूप) आपको यह नियंत्रित करने देता है कि अनट्रैक्ड फाइलें आउटपुट में कैसे दिखाई दें—जो उन प्रोजेक्ट्स में प्रासंगिक है जिनमें बहुत सी जेनरेटेड फाइलें होती हैं। प्रत्येक मोड का अर्थ यह है:
normal(डिफ़ॉल्ट)
अनट्रैक्ड फाइलों को मानक, स्पेस‑प्रभावी फ़ॉर्मैट में दिखाता है।
उदाहरण:
git status -u normal
यह वही मानक व्यवहार है जो अधिकतर डेवलपर git status चलाते समय देखते हैं।
all
हर अनट्रैक्ड फाइल को सूचीबद्ध करता है—यहां तक कि वे भी जो डिफ़ॉल्ट रूप से इग्नोर होती हैं।
उदाहरण:
git status -u all
यह मोड आपको पूर्ण विज़िबिलिटी देता है, जो फाइल जनरेशन समस्याओं को डिबग करते समय या .gitignore के जरिए क्या बाहर हो रहा है यह समीक्षा करते समय सहायक हो सकता है।
-
no
अनट्रैक्ड फाइलों को छिपा देता है, ताकि आप केवल उन फाइलों के बदलावों पर ध्यान दे सकें जो पहले से Git द्वारा ट्रैक की जा रही हैं।
उदाहरण:
git status -u no
मेरे एक बड़े प्रोजेक्ट—एक Node.js एप्लिकेशन जिसमें जटिल बिल्ड प्रोसेस था—में git status का आउटपुट अस्थायी फाइलों, कैश और बिल्ड आर्टिफैक्ट्स से भर जाता था। -u no विकल्प जोड़ने से मैं अस्थायी या ऑटो‑जेनरेटेड फाइलों के व्यवधान के बिना केवल ट्रैक्ड फाइल परिवर्तनों पर ध्यान केंद्रित कर सका।
--porcelain के साथ आउटपुट को कस्टमाइज़ करना
स्क्रिप्टिंग या ऑटोमेशन कार्यों के लिए पूर्वानुमेय आउटपुट आवश्यक है। --porcelain विकल्प git status का स्वच्छ, स्थिर, मशीन‑रीडेबल फ़ॉर्मैट प्रदान करता है, जो कस्टम टूल्स या CI/CD वर्कफ़्लो में उपयोग के लिए आदर्श है:
git status --porcelain
यह मोड शॉर्ट फ़ॉर्मैट (--short) की नकल करता है, लेकिन Git वर्ज़न और कॉन्फ़िगरेशन के पार एकसमान आउटपुट की गारंटी देता है। डिफ़ॉल्ट git status के विपरीत, जो यूज़र सेटिंग्स के अनुसार अतिरिक्त लाइन ब्रेक, संकेत या रंग शामिल कर सकता है, --porcelain ऐसे सभी फ़ॉर्मैटिंग को हटा देता है—ताकि स्क्रिप्ट्स आउटपुट को भरोसेमंद तरीके से पार्स कर सकें।
Git Status चलाने के बाद अगले कदम
git status चलाकर आउटपुट का विश्लेषण करने के बाद, अब अगला कदम तय करने का समय है—चाहे वह फाइलों को स्टेज करना हो, अपडेट कमिट करना हो, या अपनी वर्किंग डायरेक्टरी को साफ करना हो। आगे ऐसे बढ़ें।
कमिट के लिए फाइलें स्टेज करना
स्टेजिंग आपके बदलावों को अगले कमिट में शामिल करने के लिए तैयार करती है। आप व्यक्तिगत फाइलें स्टेज कर सकते हैं या सब कुछ एक साथ।
- किसी विशिष्ट फाइल को स्टेज करें:
जब आप इस पर सटीक नियंत्रण चाहते हों कि क्या कमिट में जाए, तब इसका उपयोग करें।
git add <file-name>
- सभी बदलाव स्टेज करें:
इसमें मौजूदा डायरेक्टरी में संशोधित और नई जोड़ी गई फाइलें शामिल होती हैं।
git add .
- केवल ट्रैक्ड फाइलों के बदलाव स्टेज करें (नई अनट्रैक्ड फाइलों को छोड़कर):
git add -u
मैं सलाह देता/देती हूं कि अनजाने में अवांछित फाइलें शामिल होने से बचने के लिए स्टेजिंग से पहले git status या git diff से बदलावों की सावधानीपूर्वक समीक्षा करें। git diff कमांड के साथ git status को जोड़कर आप फाइलों में हुए बदलावों की और भी गहरी समझ पा सकते हैं।
बदलाव कमिट करना
बदलाव स्टेज करने के बाद अगला कदम कमिट बनाना है। एक स्पष्ट और विवरणपूर्ण कमिट संदेश न केवल क्या बदला गया यह दर्ज करता है, बल्कि क्यों बदला गया यह भी—जिससे समय के साथ प्रोजेक्ट की हिस्ट्री समझना आसान हो जाता है।
git commit -m "Describe your changes here"
कमिट संदेशों के सर्वोत्तम अभ्यास:
- आदेशात्मक शैली का उपयोग करें (जैसे, “Fix login bug”, न कि “Fixed login bug”)।
- संक्षेप पंक्ति को संभव हो तो 50 अक्षरों से कम रखें।
- जरूरत हो तो बहु‑पंक्ति संदेश (
git commitबिना-m) का उपयोग करें ताकि संक्षेप और विस्तृत व्याख्या अलग‑अलग रहे।
मैंने सीखा है कि अर्थपूर्ण कमिट संदेश लिखने में एक अतिरिक्त मिनट लगाना बाद की समीक्षाओं या डिबगिंग सत्रों में अनगिनत घंटे बचा सकता है। एक बार जब आपके बदलाव रिव्यू हो जाएं, तो अपने Git इतिहास को साफ रखने के लिए अपने कमिट्स को स्क्वैश करने पर विचार करें।
अनट्रैक्ड फाइलों को संभालना
अनट्रैक्ड फाइलें आपके git status आउटपुट को अव्यवस्थित कर सकती हैं, खासकर उन प्रोजेक्ट्स में जिनमें बिल्ड आर्टिफैक्ट्स, लॉग्स या डिपेंडेंसी डायरेक्टरी होती हैं। यदि कुछ फाइलें या डायरेक्टरी ऐसी हैं जिन्हें आप कभी ट्रैक नहीं करना चाहते, तो उन्हें अपनी रिपोज़िटरी की रूट में .gitignore फाइल में जोड़कर बाहर रखें।
# Ignore dependency folders and log files
node_modules/
*.log
# Ignore system files
.DS_Store
Thumbs.db
इससे आपकी रिपोज़िटरी में केवल प्रासंगिक फाइलें रहती हैं, और git status का आउटपुट साफ और केंद्रित रहता है। जब आपको अपनी वर्किंग डाइरेक्टरी से बची हुई अनट्रैक्ड फाइलें हटानी हों, तो git clean भी एक उपयोगी टूल है।
नियमित रूप से स्टेटस की समीक्षा
बार‑बार git status चलाना एक सरल मगर शक्तिशाली आदत है, जो एक साफ‑सुथरा और नियंत्रित डेवलपमेंट वर्कफ़्लो बनाए रखने में मदद करती है। वर्किंग डायरेक्टरी और स्टेजिंग एरिया की स्थिति नियमित अंतराल पर—खासकर कमिट, ब्रांच स्विच या मर्ज से पहले—जांचकर आप अधूरे बदलाव कमिट करने या अनट्रैक्ड फाइलें अनदेखी रह जाने जैसी आम गलतियों से बच सकते हैं।
मैं अब इसे अपनी दैनिक दिनचर्या में शामिल करता/करती हूं, जिससे मेरी कमिट हिस्ट्री में त्रुटियां काफी कम हो गई हैं।
सामान्य Git Status समस्याओं का समाधान
अपनी सादगी के बावजूद, कभी‑कभी git status का आउटपुट भारी या भ्रमित कर सकता है। यहां कुछ आम समस्याएं और उन्हें कैसे संभालें दिए गए हैं।
अनचाही अनट्रैक्ड फाइलें
बड़े प्रोजेक्ट्स में, खासकर जहां अलग‑अलग बिल्ड टूल्स उपयोग होते हैं, आपको कई ऐसी फाइलें दिख सकती हैं जिन्हें ट्रैक करने का इरादा नहीं था। यदि ऐसा हो, तो अपनी .gitignore सेटिंग्स सत्यापित करें और जरूरत पड़े तो ट्रैकिंग से हटाने के लिए यह चलाएं:
git rm --cached <file-name>
.gitignore अपडेट करने और git rm --cached उपयोग करने के बाद, git status फिर चलाएं ताकि सत्यापित हो सके कि फाइल अब ट्रैक नहीं हो रही और अनावश्यक रूप से नहीं दिख रही।
बहुत अधिक आउटपुट
बहुत सारी फाइलों वाले प्रोजेक्ट्स—खासकर जो लॉग्स, कैश या अस्थायी एसेट्स जनरेट करते हैं—में git status का आउटपुट शोरपूर्ण और स्कैन करने में कठिन हो सकता है। इससे उन सार्थक बदलावों पर ध्यान केंद्रित करना मुश्किल हो जाता है जिन्हें ध्यान चाहिए।
ऐसे में, आप संक्षिप्त, प्रति‑फाइल एक‑पंक्ति सारांश दिखा सकते हैं:
git status --short
या आउटपुट से अनट्रैक्ड फाइलों को पूरी तरह छिपा दें:
git status -u no
साथ‑साथ, ये विकल्प git status को अधिक केंद्रित और सुगम बनाते हैं—खासकर बड़े कोडबेस या स्वचालित वर्कफ़्लो में।
निष्कर्ष
संक्षेप में, git status एक अपरिहार्य टूल है जो आपकी रिपोज़िटरी की सेहत की रियल‑टाइम झलक देता है। इसके डिफ़ॉल्ट व्यू, शॉर्ट फ़ॉर्मैट और -u जैसे उन्नत विकल्पों में महारत हासिल करके, आप अपने Git वर्कफ़्लो को सुव्यवस्थित कर सकते हैं और आम गलतियों से बच सकते हैं। अपने प्रोजेक्ट्स पर इन मोड्स के साथ प्रयोग करें और देखें कि बदलावों के प्रबंधन में स्पष्टता कैसे आपके विकास को तेज करती है।
यदि आप Git में नए हैं, तो git status को समझना git init—जो रिपोज़िटरी इनिशियलाइज़ करता है—के साथ मिलकर और भी शक्तिशाली बन जाता है। अगर आपने अभी तक नहीं किया है, तो मेरा Git Init Tutorial देखें ताकि आप शून्य से रिपोज़िटरी सेटअप करना सीख सकें।
और यदि आप अपनी Git स्किल्स को और गहरा करना चाहते हैं, तो ये DataCamp कोर्स देखें:
- Intermediate Git – ब्रांचिंग, मर्जिंग और कॉन्फ्लिक्ट रेजोल्यूशन तकनीकों के साथ अपने कौशल बढ़ाएं।
- GitHub Foundations – सहयोगी प्रोजेक्ट्स के लिए Git को GitHub के साथ एकीकृत करना सीखें।
हैप्पी कोडिंग—और आपकी रिपोज़िटरी के साथ हमेशा परफ़ेक्ट सिंक में रहने की शुभकामनाएं!
FAQs
git status, git diff से कैसे अलग है?
जहां git status बदलावों का सारांश दिखाता है, वहीं git diff फाइलों के बीच वास्तविक सामग्री का अंतर दिखाता है, यानी अधिक विस्तृत तुलना प्रदान करता है।
क्या मैं git status का आउटपुट कस्टमाइज़ कर सकता/सकती हूँ?
हाँ, --short, --porcelain, और -u जैसे विकल्पों का उपयोग करके आप आउटपुट को अपनी ज़रूरत के अनुसार अधिक संक्षिप्त या स्क्रिप्ट‑अनुकूल बना सकते हैं।
Git में स्टेज्ड और अनस्टेज्ड बदलावों में क्या अंतर है?
स्टेज्ड बदलाव इंडेक्स में जोड़े जाते हैं और कमिट के लिए तैयार होते हैं, जबकि अनस्टेज्ड बदलाव अभी आपकी वर्किंग डायरेक्टरी में हैं और कमिट के लिए चिह्नित नहीं हुए हैं।
git status में दिखने वाली फाइलों को मैं कैसे इग्नोर करूँ?
आप .gitignore फाइल में फाइल पैटर्न जोड़कर कुछ फाइलों (जैसे लॉग्स या बिल्ड आर्टिफैक्ट्स) को git status में अनट्रैक्ड दिखने से रोक सकते हैं।
git status में अनट्रैक्ड फाइलें बार‑बार क्यों दिखती रहती हैं?
अनट्रैक्ड फाइलें वे हैं जो Git इंडेक्स में जोड़ी नहीं गई हैं। यदि उन्हें स्पष्ट रूप से .gitignore में इग्नोर नहीं किया गया या git add से स्टेज नहीं किया गया, तो वे git status में दिखती रहेंगी।
खराब कमिट्स से बचने में git status कैसे मदद करता है?
कमिट से पहले git status चलाकर आप सभी स्टेज्ड और अनस्टेज्ड बदलावों की समीक्षा कर सकते हैं, जिससे फाइलें छूटने या अधूरे बदलाव गलती से कमिट होने से बचाव होता है।
क्या मर्ज कॉन्फ्लिक्ट्स सुलझाने में git status उपयोगी है?
बिल्कुल। git status कॉन्फ्लिक्ट्स को हाईलाइट करता है और मर्ज को अंतिम रूप देने से पहले उन्हें सुलझाने के तरीके बताता है।
मुझे अपने वर्कफ़्लो में git status कितनी बार उपयोग करना चाहिए?
अक्सर! स्टेजिंग, कमिटिंग या ब्रांच बदलने से पहले git status का उपयोग आपको संगठित रहने और महंगी गलतियों से बचने में मदद करता है।
मैं एक डेटा इंजीनियर और कम्युनिटी बिल्डर हूँ, जो डेटा पाइपलाइनों, क्लाउड, और AI टूलिंग के साथ काम करता/करती हूँ, साथ ही DataCamp और उभरते डेवलपर्स के लिए व्यावहारिक, असरदार ट्यूटोरियल लिखता/लिखती हूँ।
