सामग्री पर जाएं
GitTree

गिट गाइड

Git add -p: विशिष्ट पंक्तियों को चरणबद्ध करें और केंद्रित प्रतिबद्धताएँ बनाएं

दो असंबंधित परिवर्तन एक फ़ाइल में समाप्त हो गए। अभी सुधार करें और रिफैक्टर को बाद के लिए छोड़ दें: स्टेजिंग क्षेत्र, पैच मोड और GitTree की लाइन चयन के लिए एक व्यावहारिक मार्गदर्शिका।

द्वारा लिखित Kodmoraअद्यतन किया गया 7 मिनट पढ़ा

फ़ाइल के केवल एक भाग को प्रतिबद्ध करने के लिए, अपने इच्छित परिवर्तनों को `git add -p -- path/to/file` के साथ चरणबद्ध करें, `git diff --cached` के साथ उनकी समीक्षा करें, फिर प्रतिबद्ध करें। शेष संपादन आपकी कार्यशील फ़ाइलों में रहते हैं। GitTree में, फ़ाइल डिफ खोलें, बदली हुई पंक्तियों का चयन करें और उसी प्रकार की केंद्रित प्रतिबद्धता तैयार करने के लिए Stage Lines चुनें।

मान लीजिए कि आपने चेकआउट सत्यापन बग ठीक कर दिया है, फिर उसी घटक को पुनर्गठित करना शुरू कर दिया है। एक समीक्षक को अधूरे रिफैक्टर को पढ़े बिना बग फिक्स को समझने में सक्षम होना चाहिए। यह मार्गदर्शिका उन परिवर्तनों को इतिहास बनने से पहले ही अलग कर देती है। एनिमेटेड उदाहरण GitTree का उपयोग करता है, जो क्लाइंट हम macOS, Windows और Linux के लिए बनाते हैं। आंशिक स्टेजिंग निःशुल्क योजना से संबंधित है; वर्तमान आधिकारिक बिल्ड के लिए साइन-इन की आवश्यकता होती है।

वर्किंग ट्री, स्टेजिंग एरिया और कमिटमेंट: क्या बचाया जाता है?

ध्यान में रखने योग्य तीन संस्करण
जगहइसमें क्या शामिल हैइसका निरीक्षण कैसे करें
काम करने वाला पेड़आपकी फ़ाइलें वैसी ही हैं जैसी वे अभी हैंअपने संपादक में फ़ाइलें खोलें
सूचकांक/स्टेजिंग क्षेत्रप्रस्तावित अगला स्नैपशॉटgit diff --cached इसकी तुलना HEAD से करता है
सिरवर्तमान प्रतिबद्धताgit show HEAD:path/to/file

स्टेजिंग एक चयन कदम है, न कि कोई प्रतिबद्धता और न ही कोई धक्का। एक फ़ाइल को आंशिक रूप से चरणबद्ध किया जा सकता है: सूचकांक एक संस्करण रखता है जबकि आपका संपादक सभी संपादन दिखाता है। यदि आप स्टेजिंग के बाद दोबारा संपादन करते हैं, तो स्टेज्ड संस्करण चुपचाप अपडेट नहीं होता है। प्रतिबद्ध होने से पहले इसकी दोबारा समीक्षा करें. विज़ुअल कमिट ग्राफ़ कमिट मौजूद होने के बाद इतिहास का निरीक्षण करने में मदद करता है।

एक फ़ाइल पर git add -p का उपयोग कैसे करें

git status से शुरू करें और पहले से ही चरणबद्ध किसी भी चीज़ का निरीक्षण करें। पैच मोड मौजूदा इंडेक्स में चयनित परिवर्तन जोड़ता है; यह पहले के चयनों को नहीं हटाता है. इस उदाहरण में, src/checkout.ts को अपनी ट्रैक की गई टेक्स्ट फ़ाइल से बदलें, फिर केवल सत्यापन फिक्स को स्वीकार करें जब Git प्रत्येक ब्लॉक के बारे में पूछे।

git status
git diff --cached
git diff -- src/checkout.ts
git add -p -- src/checkout.ts
git diff --cached
git diff -- src/checkout.ts
git commit -m "fix: validate checkout input"

चरणबद्ध अंतर की समीक्षा करने और इच्छित परिवर्तन का परीक्षण करने के बाद ही अंतिम प्रतिबद्धता चलाएँ। git diff --cached दिखाता है कि कमिट क्या रिकॉर्ड करेगा; सादा git diff दिखाता है कि क्या अप्रतिबद्ध रहेगा। इस वर्कफ़्लो के लिए git commit -a का उपयोग न करें या git commit को फ़ाइल पथ न दें: वे फ़ॉर्म आपके द्वारा अभी-अभी तैयार किए गए आंशिक चयन को बायपास कर सकते हैं।

जब फिक्स और रिफैक्टर एक साथ करीब हों तो एक हंक को विभाजित करें

हंक संदर्भ के साथ पास की बदली हुई रेखाओं का एक ब्लॉक है। पैच मोड फिक्स और रिफैक्टर को एक साथ समूहित कर सकता है। Git को ब्लॉक विभाजित करने के लिए कहने के लिए s का उपयोग करें। यदि संपादनों को स्वचालित रूप से अलग नहीं किया जा सकता है, तो e एक पैच संपादक खोलता है, या एक विज़ुअल लाइन चयनकर्ता आपको इच्छित परिवर्धन और निष्कासन चुनने में मदद कर सकता है।

उपयोगी पैच-मोड विकल्प
कुंजीनिर्णय
yइस ब्लॉक को स्टेज करें
nइस ब्लॉक को अस्थिर छोड़ दें
sजब संभव हो तो इसे छोटे ब्लॉकों में विभाजित करें
eप्रस्तावित पैच संपादित करें
qशेष ब्लॉकों की समीक्षा बंद करें

प्रतिस्थापन के लिए, हटाई गई लाइन और उसके प्रतिस्थापन दोनों को एक तार्किक परिवर्तन के रूप में मानें। केवल आधे का चयन करने से वह कोड उत्पन्न हो सकता है जिसे आपने अपने संपादक में कभी नहीं देखा होगा। उन्नत पैच संपादन विकल्प है; यदि आप चरणबद्ध परिणाम की व्याख्या नहीं कर सकते हैं, तो इसे अस्थिर करें और एक स्पष्ट सीमा चुनें। केंद्रित प्रतिबद्धताओं को अपने दम पर काम करने की ज़रूरत है, न कि केवल छोटी होने की।

GitTree में विशिष्ट पंक्तियों को कैसे व्यवस्थित करें

  1. परिवर्तित फ़ाइल खोलें

    //WIP पंक्ति का चयन करें, फिर इसके अंतर को खोलने के लिए अनस्टेज्ड फ़ाइलों के अंतर्गत फ़ाइल का चयन करें।

  2. सही मात्रा चुनें

    पूर्ण ब्लॉक के लिए Stage Hunk का उपयोग करें, या बदली हुई पंक्तियों के बगल में स्थित बक्सों पर टिक करें। शिफ़्ट-क्लिक एक श्रेणी का चयन करता है।

  3. चयनित पंक्तियों को चरणबद्ध करें

    चयन बार में Stage Lines चुनें। अन्य संपादन आपकी कार्यशील फ़ाइलों में बने रहते हैं।

  4. मंचित संस्करण का निरीक्षण करें

    चरणबद्ध फ़ाइलों के अंतर्गत फ़ाइल का चयन करें और अंतर की समीक्षा करें। चयन को सही करने के लिए अनस्टेज हंक या अनस्टेज लाइन्स का उपयोग करें।

  5. एक सुसंगत परिवर्तन करें

    चयनित परिवर्तन का वर्णन करते हुए एक संदेश लिखें और उसे प्रतिबद्ध करें। अगली प्रतिबद्धता के लिए शेष संपादनों पर वापस लौटें।

GitTree में दो बदली हुई पंक्तियों का चयन और मंचन देखें। शेष संपादन अस्थिर रहेंगे।
GitTree में दो बदली हुई पंक्तियों का चयन और मंचन देखें। शेष संपादन अस्थिर रहेंगे।GitTree प्रदर्शन भंडार के साथ इंटरफ़ेस।

डाउनलोड करें GitTree मिश्रित अंतर की समीक्षा करने और दृष्टिगत रूप से केंद्रित प्रतिबद्धताएं बनाने के लिए। आप इसे टर्मिनल के साथ-साथ मौजूदा रिपॉजिटरी पर उपयोग कर सकते हैं; दोनों एक ही Git स्टेजिंग क्षेत्र पढ़ते हैं।

आपके संपादनों को त्यागे बिना परिवर्तनों को अस्थिर करें

git restore --staged -- src/checkout.ts
# Or choose which staged blocks to remove:
git restore --staged -p -- src/checkout.ts

ये विकल्प आदेश हैं. --staged के साथ, पुनर्स्थापना आपकी कार्यशील फ़ाइल के बजाय अनुक्रमणिका में परिवर्तन लाती है। कमिट वाले रिपॉजिटरी के लिए, यह आम तौर पर चरणबद्ध सामग्री को HEAD की ओर रीसेट करता है। --staged के बिना, पुनर्स्थापना कार्यशील संपादनों को अधिलेखित कर सकती है, इसलिए अंतर स्पष्ट रखें। GitTree में अनस्टेज चुनें, डिस्कार्ड नहीं, जब आप केवल यह बदलना चाहते हैं कि अगली प्रतिबद्धता में क्या शामिल है।

एक फ़ाइल दो बार क्यों दिखाई देती है, या एक पंक्ति का मंचन क्यों नहीं किया जा सकता है?

स्टेज्ड फाइलों और अनस्टेज्ड फाइलों दोनों के तहत एक फ़ाइल का मतलब आमतौर पर आंशिक स्टेजिंग या बाद में संपादन होता है, न कि डुप्लिकेट फ़ाइल। पैच मोड द्वारा अपनी सामग्री पेश करने से पहले एक नई, ट्रैक न की गई टेक्स्ट फ़ाइल को git add -N -- path/to/new-file की आवश्यकता हो सकती है। बाइनरी फ़ाइलों में कोई सामान्य टेक्स्ट हंक नहीं होता; GitTree संपूर्ण-फ़ाइल संचालन के रूप में नाम बदलने, एलएफएस पॉइंटर्स और सबमॉड्यूल परिवर्तनों को भी चरणबद्ध करता है। यदि रिक्त स्थान छिपा हुआ है, तो केवल रिक्त स्थान वाले परिवर्तनों को चुनने से पहले इसे दिखाएँ।

यदि कोई संपादक या फ़ॉर्मेटर आपके द्वारा फ़ाइल का अंतर खोलने के बाद उसे बदलता है, तो GitTree पुरानी लाइन चयन को अस्वीकार कर सकता है। अंतर को ताज़ा करें और फिर से चुनें। केवल छोटी पंक्ति संख्या तक पहुंचने के लिए कसकर युग्मित परिवर्तनों को विभाजित करने से बचें। किसी कार्य में रुकावट के लिए, अधूरे काम को छिपाएँ; पहले से प्रतिबद्ध मिश्रित इतिहास के लिए, इंटरैक्टिव रीबेस गाइड की समीक्षा करें।

आप जो कमिट तैयार कर रहे हैं उसका परीक्षण करें, न कि केवल संपादक की फाइलों का

आपका सामान्य परीक्षण आदेश कार्यशील फ़ाइलों के विरुद्ध चलता है, जिसमें अभी भी अस्थिर संपादन शामिल हैं। वहां परीक्षण पास करने से यह साबित नहीं होता कि आंशिक प्रतिबद्धता पूरी हो गई है। एक महत्वपूर्ण विभाजन के लिए, पहले स्थानीय कमिट बनाएं, फिर एक अलग क्लीन चेकआउट या वर्कट्री में उस प्रतिबद्ध स्नैपशॉट का निरीक्षण और परीक्षण करें। यदि शाखा साझा करने से पहले यह विफल हो जाती है तो लापता निर्भरता जोड़ें। वर्कट्री गाइड बताता है कि कैसे अलग-अलग फ़ोल्डर्स उन संस्करणों को अलग रखने में मदद करते हैं।

अक्सर पूछे जाने वाले प्रश्न

Git add -p क्या करता है?

यह आपको सूचकांक में जोड़ने के लिए चरणबद्ध परिवर्तनों के ब्लॉक चुनने की सुविधा देता है। यह कोई कमिट नहीं बनाता या आपके काम को अपलोड नहीं करता।

क्या मैं किसी फ़ाइल की केवल कुछ पंक्तियाँ ही प्रतिबद्ध कर सकता हूँ?

हाँ। उन परिवर्तनों को चरणबद्ध करें, git diff --cached का निरीक्षण करें और -a या फ़ाइल-पथ तर्कों के बिना प्रतिबद्ध करें। अन्य संपादन अप्रतिबद्ध रहेंगे।

क्या अनस्टेजिंग से मेरे संपादन नष्ट हो जाते हैं?

गिट रिस्टोर के साथ अनस्टेजिंग --स्टेज्ड इंडेक्स को बदल देता है और काम करने वाली फाइलों को अकेला छोड़ देता है। कार्यशील फ़ाइलों को हटाना या पुनर्स्थापित करना एक अलग ऑपरेशन है।

Git मेरे हंक को विभाजित क्यों नहीं कर सकता?

आस-पास के संपादनों में स्वचालित रूप से विभाजित होने के लिए पर्याप्त अपरिवर्तित संदर्भ नहीं हो सकता है। पैच की मैन्युअल रूप से समीक्षा करें या आश्रित परिवर्धन और निष्कासन को एक साथ रखते हुए लाइन चयन का उपयोग करें।

क्या GitTree में आंशिक स्टेजिंग मुफ़्त है?

हाँ। फ़ाइल, हंक और लाइन स्टेजिंग निजी रिपॉजिटरी सहित निःशुल्क योजना में हैं। वर्तमान आधिकारिक बिल्ड के लिए साइन-इन की आवश्यकता होती है।

सूत्र

अन्य उत्पादों के बारे में दावों की जाँच उनके आधिकारिक पेजों के विरुद्ध 28 अक्टूबर 2026 पर की गई। कीमतें और सुविधाएँ बदलती हैं; विक्रेताओं के पृष्ठ सत्य का स्रोत हैं।