गिट एक ही संशोधन से अगले में एकमात्र जानकारी है जो प्रत्येक संशोधन में फ़ाइलों का राज्य (नाम और सामग्री) है। संशोधन ए में, इस फ़ाइल में यह सामग्री थी, और संशोधन बी में, इस फ़ाइल में वह अन्य सामग्री थी। गिट की देखभाल फ़ाइलों को बिंदु ए से बिंदु बी तक मिली, चाहे वह एक संपादन, या नाम बदलें, या एक विवाद समाधान, या एक ऑक्टोपस विलय हो।
इस दृष्टिकोण को एक अवधारणात्मक सरल भंडार प्रारूप का लाभ है। यह महत्वपूर्ण है क्योंकि आपका भंडार आपका इतिहास है, और इतिहास को सबसे सरल प्रारूप में संरक्षित किया जाना चाहिए।
इसका एक निहितार्थ यह है कि जब भी गिट को यह पता लगाने की आवश्यकता होती है कि संशोधन ए और बी (उदाहरण के लिए) के बीच क्या हुआ, तो उस समय विवरणों को पूरा करने की आवश्यकता है जब आप इसके लिए पूछते हैं। यहां तक कि एक साधारण diff के लिए, जबकि कुछ उपकरण आंतरिक रूप से संग्रहीत diff को दिखाने में सक्षम हो सकते हैं, गिट संशोधित ए और बी में फ़ाइलों की तुलना करता है और अनुरोध करते समय भिन्नता को पुन: उत्पन्न करता है। नामों के लिए, गिट नोटिस करता है कि एक नई फाइल अभी दिखाई दे रही है, और पिछली संशोधन में समान फ़ाइलों को लगता है कि फ़ाइल का नाम बदल दिया गया था या नहीं।
चूंकि गिट उपकरण समय के साथ सुधारते हैं, इतिहास का गठन किया गया था, उस समय दर्ज किए जाने के बिना रिपोर्ट किया जा सकता है। उदाहरण के लिए, अक्सर दावा किया जाता है कि गिट "एक फ़ाइल से दूसरे फ़ाइल में चलने वाले कोड के व्यक्तिगत बिट्स को ट्रैक कर सकता है"। यह इतिहास रिपोर्टिंग करने वाले कार्यक्रमों की चतुरता के कारण पूरी तरह से है, और भंडार में संग्रहीत किसी भी चीज़ के कारण नहीं।
स्रोत
2011-04-09 11:40:03