2010-02-19 3 views
5

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

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

हालांकि, एक अवधारणा जिसे मैं अभी भी नहीं सोचता कि मुझे "मिल गया" इंडेक्स का वास्तविक उद्देश्य है। मुझे यह एहसास है कि मैं कुछ लाभ का लाभ नहीं उठा रहा हूं जिसका उद्देश्य है।

स्टेजिंग क्षेत्र रखने का उद्देश्य क्या है? एसवीएन भूमि से आ रहा है, मैं अपने कामकाजी प्रति को मेरे स्टेजिंग क्षेत्र के रूप में और मेरे स्नैपशॉट्स के इलाज के लिए इस तरह से उपयोग करने के लिए उपयोग किया जाता हूं।

तो, मेरे सवाल यह है:

क्या अविवेक की इस अतिरिक्त स्तर आप देता है? इंडेक्स ने आपके सामान्य वर्कफ़्लो को कैसे सुधार या बदल दिया है? क्या आप कोई परिदृश्य प्रदान कर सकते हैं जहां इंडेक्स ने आपको कुछ ऐसा करने की इजाजत दी है जो इसके बिना परेशानी होगी?

+0

यह भी देखें http://stackoverflow.com/questions/1836801/git-should-i-ignore-the-index-or-is-there-a-killer-plication-for-it –

+0

+1 वाक्यांश के लिए वाक्यांश शीर्षक सवाल बहुत अच्छी तरह से। – WinWin

उत्तर

7

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

(जटिल, बड़े) विवादों की विवाद की स्थिति में, इंडेक्स में किए गए प्रत्येक परिवर्तन को जोड़ने में भी सक्षम होना अच्छा लगता है, इसलिए मुझे पता है कि मैंने क्या संघर्ष किए हैं और किसके साथ निपटने के लिए छोड़े गए हैं।

3

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

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

1

कभी-कभी मैं एक विदेशी शाखा से परिवर्तनों का एक गुच्छा खींचने के लिए 'गिट चेरी-पिक-एन' या 'गिट मर्ज - स्क्वैश' करूंगा, तो मैं उन सभी परिवर्तनों को अस्थिर कर दूंगा और गिट इंटरैक्टिव ऐड का उपयोग करूंगा (गिट एड -i) केवल उन टुकड़ों को मंचित करने के लिए जो मैं चाहता हूं। आप एक भिन्नता के "शिकारी" का चयन भी कर सकते हैं और बाकी को एक बदले हुए राज्य में छोड़ सकते हैं (अलग-अलग चीजों के लिए महान जो अलग-अलग काम करना चाहिए)।

जब आप फ़ाइलों का एक पूरा समूह संपादित कर रहे हों तो भी बढ़िया है, लेकिन आप तय करते हैं कि आपको आगे बढ़ने से पहले एक्स से संबंधित सभी फाइलों को एक ही प्रतिबद्धता के रूप में प्रतिबद्ध करना चाहिए, इसलिए आप केवल उनको मंच दें, प्रतिबद्ध रहें और काम करते रहें अन्य फाइलें

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

संबंधित मुद्दे