2011-07-16 16 views
19

मैं गिट में स्टेजिंग निर्देशिका (गिट इंडेक्स) का नामकरण उलझन में था।क्यों स्टेजिंग निर्देशिका को इंडेक्स/गिट इंडेक्स भी कहा जाता है?

क्या कोई विशेष अर्थ है कि इसे इंडेक्स कहा जाता है? क्यों न केवल कैश/या टेम्प निर्देशिका कहा जाता है ताकि हम अधिक आसानी से समझ सकें?

मेरे लिए, इंडेक्स एसएचएच है जो हमें चीजों को तेज़ी से खोजने में मदद करता है, जैसे डीबीएमएस में अनुक्रमण, यह स्टेजिंग क्षेत्र से कैसे संबंधित है ???

मैंने कुछ Google खोज की लेकिन अभी भी कोई विचार नहीं है। रेफरी लिंक Git Index

+1

मैंने वास्तव में कभी-कभी मुझे यह भी आश्चर्यचकित कर दिया है: डी –

+0

एक्टौली, मैं सिर्फ यह जानना चाहता हूं कि स्टेजिंग क्षेत्र में अन्य विशेष कार्यक्षमता है जो मुझे नहीं पता। चूंकि मैं पहली बार गिट में इस शब्द को पूरा करता हूं, मुझे लगता है कि यह एक बहुत जटिल चीज है जिसे मुझे संभालने की जरूरत है ... –

+0

नहीं। AFAIK यह केवल कोड की स्थिति है जो प्रतिबद्ध होगा। – Abizern

उत्तर

20

article by the main Git maintainer Junio C. Hamano,, शिक्षाप्रद है कैश और सूचकांक के बीच का अंतर लोभी के लिए:
(जोर मेरा)

जब लीनुस Git लिखना शुरू किया, अपने उद्देश्य के लिए उसे अनुमति देने के लिए था अपने मूल "टैरबॉल और पैच" वर्कफ़्लो द्वारा उत्पादित प्रत्येक इंटरमीडिएट राज्य को पुन: पेश करें जिसे उन्होंने बिटकिपर दिनों से पहले उपयोग किया था।
एक 2.6.12 टारबॉल से शुरू, वह पैच-1, पैच-2 कतार, ... इसलिए 2.6.12 ही है, दोनों पैच -1 और पैच-2 के साथ पैच-1 लागू किए गए हैं 2.6.12, 2.6.12 लागू, तीन संस्करण बन गया।

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

ऐसे संस्करण नियंत्रण रिकॉर्ड के संग्रह की मेजबानी करने के लिए नियंत्रण निर्देशिका को ".dircache" नाम दिया गया था (इसका नाम बदलकर ".git" कुछ समय बाद किया गया था)।
एक फ़ाइल ".dircache/index" कहा जाता था, और इस फ़ाइल की सामग्री पढ़ सकते हैं और सी में चर कि एक संज्ञा, "cache" के नाम पर रखा गया का एक सेट में हेरफेर किया गया था।
उस समय हम आज क्या सूचकांक, एक बफर क्षेत्र सामग्री आप एक पेड़ वस्तु के रूप में लिखने का इरादा के संग्रह का निर्माण करने के लिए कॉल की अवधारणा, "कैश" बुलाया गया था।
हर कोई "कैश" और "सूचकांक" दूसरे के स्थान पर, फ़ाइल है कि रिकॉर्ड "index" नामित किया गया था "cache" में क्या है के रूप में के बारे में बात की थी। यह इंडेक्स था (और यह अभी भी है) कैश में सामग्री को पथनाम देकर आपको सामग्री खोजने की अनुमति देता है।

अधिक से अधिक लोगों के रूप में सब पर अपने कोड को पढ़ने के लिए, इस शब्द का प्रयोग "अनुक्रमणिका" स्पष्ट कारणों के लिए अधिक प्रचलित हो गया है बिना Git का उपयोग शुरू किया।
फाइल सिस्टम पर कुछ ऐसा है, यह सी स्रोत कोड में परिवर्तनीय नाम से कहीं अधिक दिखाई देता है।
आखिरकार, हमने अंततः उपयोगकर्ता के रूप में गिट के उपयोग को समझाते हुए "इंडेक्स" नामक एक संज्ञा के रूप में "कैश" का उपयोग करना बंद कर दिया।
शब्द "कैश" अभी भी एक संज्ञा के रूप में प्रयोग किया जाता है जब हम गिट कार्यान्वयन पर चर्चा के संदर्भ में आंतरिक डेटा संरचना के बारे में बात करना चाहते हैं (उदाहरण के लिए "चलो प्रोग्रामों के लिए एक से अधिक कैश के साथ काम करना संभव बनाते हैं उसी समय")।

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

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

+0

जूनियो सी हमानो के बारे में और जानने के लिए, मार्च 2011 के इस साक्षात्कार को देखें: http://www.youtube.com/watch?v=qs_xS1Y6nGc – VonC