2010-01-08 10 views
17

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

यदि मैं अपनी फीचर शाखा में परिवर्तन करता हूं और फिर मास्टर पर स्विच करता हूं, तो क्या मेरे बदलाव नहीं होने पर मेरे परिवर्तन खो जाएंगे?

स्टैश कहां खेलता है, क्या आप शाखाओं को स्विच करने से पहले ऐसा करते हैं (लेकिन प्रतिबद्ध नहीं करना चाहते हैं) या क्या यह कुछ बदलावों को वापस करने के लिए है ताकि आप अस्थायी रूप से पिछले कोड पर वापस जा सकें?

उत्तर

12

जब तक आप अपना पेड़ साफ नहीं करते हैं तब तक आप दूसरी शाखा में नहीं बदल सकते हैं। यह आपके परिवर्तन करने, उन्हें वापस करने या उन्हें छिपाने के लिए सहेजकर किया जाता है।

+4

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

+0

वाह यह नहीं जानता कि यह कौन था लेकिन -2 डाउनवोट के लिए धन्यवाद ... मैंने इसे थोड़ी देर पहले भी सोचा था, लेकिन लेखन के समय मुझे याद है कि ऐसा करना संभव नहीं था। क्या यह गिट 1.7 के लिए नया है? – Htbaa

2

शायद आप इस उद्देश्य के लिए छेड़छाड़ का उपयोग नहीं करना चाहते हैं।

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

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

+0

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

+1

ध्यान दें कि 'स्टैश' जैसा कि आप सुझाव देते हैं, जांच करके काम करता है। यह किसी अन्य की तरह भंडार में वैध प्रतिबद्धता है। ऐसा होता है * शाखा * रेफरी से संदर्भित नहीं किया जाता है, लेकिन इसे 'स्टैश' रेफरी द्वारा पिन किया जाता है। * डिस्कशन * अनुभाग यहां देखें: http://www.kernel.org/pub/software/scm/git/docs/git-stash.html – seh

+3

आह, लेकिन इस तथ्य को ट्रैक करना आसान है कि आपने छेड़छाड़ की है, यदि आप ध्यान अन्य चीजों पर चले गए हैं। मेरी राय में, आपकी शाखा के सिर को प्रतिबद्ध करना सुरक्षित है। –

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

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