'स्टेज' का मतलब क्या होता है?


315

मुझे यह समझने में मुश्किल होती है कि मैं क्रियाओं के लिए इस्तेमाल किए जाने वाले शब्दों का अर्थ नहीं खोज पाया। मैंने 'मंच' के अर्थ के लिए शब्दकोश की जाँच की है और कोई भी अर्थ स्रोत नियंत्रण अवधारणाओं से संबंधित नहीं था।

'स्टेज' का मतलब क्या होता है?



11
Git वास्तव में अपनी शब्दावली है। और चूंकि हर निर्देश विशेष शब्दावली में तैयार किया गया है, इसलिए इसे शुरू करना मुश्किल है। "चरण" git add file.extएक विशिष्ट फ़ाइल के लिए करना है , या git add .सभी संशोधित और अनटैक की गई फ़ाइलों को प्रभावित करना है। इस तरह से जोड़ी गई फ़ाइलों को "मंचन" कहा जाता है और उन्हें अगले "कमिट" में शामिल किया जाएगा। कमिटमेंट आपके काम का एक स्नैपशॉट है, जैसे के साथ बनाया गया git commit -m "I wrote something"
जोनाथन öström

11
Git को समझना मुश्किल है क्योंकि वहाँ कोई वैचारिक ट्यूटोरियल नहीं है। सभी अनावश्यक विवरण से गुजरते हैं।
ज़ाक्रॉन

2
क्या इस सवाल से "शब्दावली" टैग हटाने का मतलब है? यह मुझे पूरी तरह से मान्य टैग लगता है।
फिलिप केंडल

किसी कारण के लिए, मैं मंचन के महत्व को समझ सकता हूं सबसे अच्छा तरीका Quora: qr.ae/TbSK2I
Lamar

जवाबों:


310

किसी फाइल को स्टेज करने के लिए बस उसे कमिट करने के लिए बारीक तैयार करना है। इसके सूचकांक के साथ Git, आपको अंतिम प्रतिबद्धताओं के बाद से किए गए परिवर्तनों के केवल कुछ हिस्सों को प्रतिबद्ध करने की अनुमति देता है। कहते हैं कि आप दो सुविधाओं पर काम कर रहे हैं - एक समाप्त हो गया है, और एक को अभी भी कुछ काम करने की आवश्यकता है। आप एक कमिट करना चाहते हैं और घर जा सकते हैं (5 बजे, आखिरकार!), लेकिन दूसरी विशेषता के हिस्सों को कमिट नहीं करना चाहेंगे, जो अभी तक नहीं किया गया है। आप उन हिस्सों को चरणबद्ध करते हैं जिन्हें आप जानते हैं कि पहली विशेषता के हैं, और प्रतिबद्ध हैं। अब आपका कमिटमेंट पहले फीचर के साथ आपका प्रोजेक्ट है, जबकि दूसरा अभी भी आपके वर्किंग डायरेक्टरी में वर्क-इन-प्रोग्रेस में है।


5
अच्छे खर्च। ध्यान दें कि गिट, वितरित किया जा रहा है, जाहिर है कि आप दोनों सुविधाओं को प्रतिबद्ध कर सकते हैं, क्योंकि कमिट स्थानीय हैं (पहली बार में)। फिर भी, आप संशोधन को एक प्रतिबद्ध प्रति फीचर में विभाजित करना चाहते हैं, और फिर से मंचन काम में आता है।
9

77
मुझे समझ नहीं आता कि आपको इसके लिए मंचन की आवश्यकता क्यों है। मैं केवल संबंधित फाइलों को कमिट करके HG या SVN के साथ भी ऐसा कर सकता हूं। ऐसा लगता है कि यह सुविधा मुख्य रूप से उन लोगों की सहायता करने के लिए डिज़ाइन की गई है जो कमांड लाइन के साथ काम करने पर जोर देते हैं जहां आप जो कर रहे हैं उस पर बक्से की जांच करना कठिन है।
जिग्गी

78
@ जिगी गिट आपको एक फ़ाइल का हिस्सा स्टेज करने की अनुमति देता है । आप किसी फ़ाइल को चरणबद्ध भी कर सकते हैं, आगे संशोधन कर सकते हैं, फिर उस स्थिति के बारे में बता सकते हैं, जो मंचन में थी। आप तोड़फोड़ में ऐसा नहीं कर सकते।
इजाकाता

4
@jiggy SVN में, उस समय के बीच कुछ होता है, जिसे चुनने के लिए आप फ़ाइलों का कौन सा भाग / भाग करना चाहते हैं और जब आप अपना प्रतिबद्ध संदेश लिखना समाप्त करते हैं, तो यह रिकॉर्ड करता है कि कौन सी फ़ाइलें / भागों को आपने चयनित किया है। यह स्पष्ट रूप से कभी उल्लेख नहीं किया जा सकता है, यह भंडार के वास्तविक हिस्से के बजाय एसवीएन क्लाइंट में लागू किया जा सकता है, यह सिर्फ स्मृति में कुछ झंडे हो सकता है, लेकिन यह एसवीएन का चरण है। मैंने HG को नहीं देखा है, लेकिन मुझे संदेह है कि यह वही काम करता है। गिट के साथ अंतर यह है कि गिट स्वीकार करता है कि यह एक चीज है, इसे डिस्क पर रिकॉर्ड करता है, और उपयोगकर्ता को सीधे इसे प्राप्त करने देता है।
8bittree

7
आकृति में दूसरा तीर "चरण फाइलें" भ्रामक हो सकता है। "स्टेज हंक" अधिक सटीक हो सकता है?
इडा

137

चूंकि अब तक सभी ने इसे "औपचारिक" तरीके से उत्तर दिया है, इसलिए मुझे यह रूपक के साथ सीखने को बढ़ाने के लिए विकल्पों के साथ करना चाहिए।

तो मंचन क्षेत्र इस प्रकार है:

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

यह जादुई है !


उपमाओं से प्रेम करो; रास्ता जाने के लिए कली ^ _ ^
मूसा अल-परेशानी

अंतिम सादृश्य से प्यार करें।
meTchaikovsky

35

गेटिंग में प्रतिबद्ध प्रक्रिया से पहले चरण एक कदम है। यही है, git में एक कमिट दो चरणों में किया जाता है: स्टेजिंग और वास्तविक कमिट।

जब तक एक परिवर्तन मंचन क्षेत्र में होता है, git आपको इसे अपनी इच्छानुसार संपादित करने देता है (मंचन की गई फ़ाइलों को चरणबद्ध फ़ाइलों के अन्य संस्करणों के साथ बदलें, मंचन से परिवर्तन हटा दें, आदि)।

टूटा हुआ रूपक समय:

एक परिदृश्य पर विचार करें जहां आप मूवर्स को अपने पुराने ऐपबॉक्स से अपने नए ऐपबॉक्स में अपना सामान प्राप्त करने के लिए कहते हैं। इससे पहले कि आप ऐसा करते हैं, आप अपने सामान के माध्यम से जाएंगे, तय करें कि आप अपने साथ क्या लेते हैं और क्या फेंकते हैं, इसे बैग में पैक करें और इसे मुख्य दालान में छोड़ दें। मूवर्स बस आते हैं, दालान से (पहले से पैक) बैग प्राप्त करते हैं और उन्हें परिवहन करते हैं। इस उदाहरण में, जब तक मूवर्स को आपका सामान नहीं मिल जाता, तब तक सब कुछ होता है: आप तय करते हैं कि वह कहां जाता है, इसे कैसे पैक किया जाता है और इसी तरह (उदाहरण के लिए, आप यह तय कर सकते हैं कि आपका आधा सामान मूवर्स के यहां तक ​​पहुंचने से पहले ही फेंक दिया जाएगा - वह हिस्सा है का मंचन)।

एक तकनीकी दृष्टिकोण से, मंचन सभी संक्रियाओं को विभाजित करने में, जो कि विफल हो सकती है (चरणबद्धता) और जो विफल नहीं हो सकती है (प्रतिबद्ध) में विभाजित करके, व्यवहारिक आवागमन का समर्थन करता है:

स्टेज में sucessfull होने के बाद git में प्रतिबद्धता को व्यवहारिक रूप से लागू किया जाता है। मंचन में कई चरण विफल हो सकते हैं (उदाहरण के लिए, आपको प्रतिबद्ध होने की आवश्यकता है, लेकिन आपका HDD 99.9999% पूर्ण है, और git के पास कमिट करने के लिए कोई स्थान नहीं है)। यह स्टेजिंग में विफल हो जाएगा (आपकी रिपॉजिटरी एक आंशिक कमेटी द्वारा दूषित नहीं होगी) और स्टेजिंग प्रक्रिया आपके कमिट इतिहास को प्रभावित नहीं करती है (यह एक त्रुटि के मामले में आपके रिपॉजिटरी को भ्रष्ट नहीं करता है)।


... और अब तक बहुत कम वोट।
ओजोनुग्वा ओशलीफु

26

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

मंचन आपको ठीक से नियंत्रण करने की अनुमति देता है कि आप संस्करण नियंत्रण कैसे प्राप्त करना चाहते हैं।


19

अन्य उत्कृष्ट उत्तरों को जोड़ने के लिए, यहाँ "मंच" का नाम आता है:

मैंने मंच के अर्थ के लिए शब्दकोश की जाँच की और कोई भी अर्थ स्रोत नियंत्रण अवधारणाओं से संबंधित नहीं था।

अंग्रेजी में, "टू स्टेज" का मतलब हो सकता है

संगठित (एक सार्वजनिक कार्यक्रम) में भाग लें: यूडीएफ समर्थकों ने सोफिया में एक प्रदर्शन का मंचन किया

( http : //oxfordd शब्दकोशों . com/definition/stage से )

गिट फीचर के लिए "स्टेजिंग" नाम इस अर्थ से निकलता है: जब स्टेजिंग करते हैं, तो आप एक कमिट की तैयारी और आयोजन करते हैं। बेशक एक प्रतिबद्ध एक प्रदर्शन के रूप में काफी समान नहीं है, लेकिन यह है एक VCS :-) में एक महत्वपूर्ण घटना।


3
मैंने सोचा था कि यह मंचन
खाएगा

डिट्टो। इसके अलावा, "एक बिंदु, अवधि, या एक प्रक्रिया या विकास में कदम।"
डेरेन

इसके अलावा 'स्टेजिंग सर्वर' एक बहुत ही सामान्य शब्द है जिसका उपयोग एक ऐसे सर्वर का वर्णन करने के लिए किया जाता है जो विकास और उत्पादन के बीच है।
इटरनल 21

4

अधिकांश अन्य संस्करण नियंत्रण प्रणालियों के साथ, डेटा संग्रहीत करने के लिए 2 स्थान हैं: आपकी कार्य प्रतिलिपि (फ़ोल्डर / फ़ाइलें जो वर्तमान में आप उपयोग कर रहे हैं) और डेटास्टोर (जहां संस्करण नियंत्रण यह निर्णय लेता है कि आपके परिवर्तनों को कैसे पैक और संग्रहीत किया जाए)। गेट में एक तीसरा विकल्प है: मंचन क्षेत्र (या सूचकांक)। यह मूल रूप से एक लोडिंग डॉक है जहां आपको यह निर्धारित करने के लिए मिलता है कि परिवर्तन क्या भेज दिए जाते हैं।

स्रोत: http://gitready.com/beginner/2009/01/18/the-staging-area.html


1
इससे पहले के 6 उत्तरों में कुछ भी पर्याप्त नहीं लगता है
gnat

इसमें इंडेक्स का उल्लेख है। और बहुत गहन लेख का संदर्भ देता है। Upvoting। BTW, ऊपर कुछ जवाब केवल चुटकुले हैं।
गंगानुस

1

"चरण" एक फ़ाइल में जाँच की प्रक्रिया में एक तकनीकी रूप से आवश्यक मध्यवर्ती कदम है, अर्थात् रिपॉजिटरी में जोड़े जाने वाले परिवर्तनों को एकत्रित करना। Git के लेखकों ने इस कदम को दृश्यमान और निरंतर बनाने के लिए चुना जहां अन्य VCS इसे प्रतिबद्ध प्रक्रिया का एक क्षणिक हिस्सा बनाते हैं। तो यह सिर्फ एक विकल्प है जो आपको देता है क्योंकि यह ऐसा नहीं हो सकता है?

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

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

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

यह पूरी तरह से संभव है कि मंचन क्षेत्र को पूरी तरह से छोड़ दें और यदि आप मंचन क्षेत्र को एक उपयोगी अवधारणा नहीं पाते हैं तो बस -aविकल्प का उपयोग करें git commit। बहुत से लोग मचान छोड़ देते हैं और जीयूआई उपकरण आमतौर पर इसके लिए भी अनुमति देते हैं।


"अन्य वीसीएस नहीं" - आपको क्या लगता है? Perforce में ठंडे बस्ते में डालने का प्रतीत होता है कि आप क्या वर्णन करते हैं, और यहां तक ​​कि कुछ अतिरिक्त घंटियाँ और सीटी के साथ
gnat

1
@ वागट हाँ, बेशक कई अन्य वीसीएस आपको मंचन जैसा कुछ देते हैं। "अन्य वीसीएस" से मेरा मतलब है कि अन्य वीसीएस जिसमें गिट के चरण की तरह कुछ नहीं है, क्योंकि यह वही है जो ओपी का उल्लेख कर रहा था।
ओल्ड प्रो

मुझे यह उत्तर उपरोक्त सभी की तुलना में बहुत बेहतर लगा, क्योंकि यह एकमात्र ऐसा है जो स्पष्ट करता है कि क्यों स्टेजिंग सभी में मौजूद है ( तकनीकी रूप से आवश्यक है ), इसके मूल की व्याख्या ( Git के लेखकों ने इस कदम को दृश्यमान और निरंतर बनाने के लिए चुना ), जोड़ते हुए जो मुझे व्यक्तिगत रूप से इसके लिए एक अच्छी परिभाषा लगती है ( एक मध्यवर्ती, अनाम, असंबद्ध स्थानीय प्रतिबद्ध )। हालाँकि, मुझे लगता है कि यह मंचन की उत्पत्ति के बारे में बयान के लिए एक स्रोत के हवाले से सुधार किया जा सकता है, और तकनीकी रूप से इसकी आवश्यकता क्यों है, इसके बारे में कुछ और विस्तार से बताएं । @ ओल्डप्रो
अलेक्सलोमा87

-1

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


इससे बने 9 अंकों से अधिक कुछ नहीं लगता है और पहले 9 उत्तरों में समझाया गया है
gnat

हाँ, आप सही हैं, मैंने बस स्पष्टीकरण को सरल और मधुर बनाने की कोशिश की
पलाश १०४०

और इस अवधारणा का उपयोग करने के लिए मुझे क्या लगता है व्यावहारिक रूप से मैंने यह समझाने की कोशिश की
पलाश 140

यहां चर्चा पर एक नज़र रखने पर विचार करें: क्या दूसरे टीएल हैं? डीआर जवाब स्वीकार्य हैं? (एफडब्ल्यूआईडब्ल्यू पूर्व उत्तरों की तुलना में यह सरल नहीं दिखता है और न ही मुझे मीठा लगता है)
gnat

धन्यवाद सर, मेरे पास पूछने के लिए एक प्रश्न है। मैं कई उत्तरों में आया हूं और उनमें से अधिकांश बहुत जटिल हैं हां वे सही हैं लेकिन एक बार में पचाने में मुश्किल है, मेरा मानना ​​है कि अगर आप कुछ भी सरल तरीके से नहीं समझा सकते हैं तो आपने इसे ठीक से नहीं सीखा है या नहीं जानते हैं कि कैसे इसके प्रयेाग के लिए। तो क्या अब जवाब देने के लिए सारांश या सरल तरीका करना बुरा है ??
पलाश 140
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.