2012-09-18 21 views
39

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

मैंने कुछ फ़ाइलों को संशोधित किया और मैंने परिवर्तनों को रोक दिया, फिर मैंने कमांड लाइन में git pull किया जो सभी नवीनतम कामों को खींच लिया। तब मैंने ईजीआईटी से Apply stashed changes किया। अब यह मेरे परिवर्तनों को लागू करता है और छेड़छाड़ की गई फाइलों की आखिरी प्रतिबद्धता से खींचे गए परिवर्तन बाहर निकल गए। मुझे यकीन नहीं है कि उसने मुझसे विवादों को मर्ज करने और मेरे परिवर्तनों को ओवरराइट करने के बारे में क्यों नहीं पूछा और पिछले बदलावों को खो दिया।

उन परिवर्तनों को कैसे प्राप्त करें?

+0

यह प्रशंसनीय नहीं लग रहा है देखने के लिए की जरूरत है। छेड़छाड़ लागू होता है या तो असंगत परिवर्तन लाता है या संघर्ष विलय का कारण बनता है। मुझे लगता है कि आप कुछ उल्लेख करना भूल गए हैं। साथ ही, आप अपने कदम दोहरा सकते हैं, शायद आपका स्टैश अभी भी सूची में है, इसे दिखाने के लिए 'गिट स्टैश सूची' का उपयोग करें। – kan

उत्तर

103

आप अपने काम करने की नकल पर बदल जाता है, कमांड लाइन से जब कार्य करें:

git stash 

इससे आपके परिवर्तन छिपाया और अपने स्टेटस रिपोर्ट

git pull 

इस नदी के ऊपर शाखा से परिवर्तन खींच लेंगे साफ हो जाएगा। सुनिश्चित करें कि यह रिपोर्ट में तेजी से आगे कहता है। यदि ऐसा नहीं होता, तो आप शायद एक अनपेक्षित मर्ज

git stash pop 

यह स्टैश परिवर्तन वापस काम कर प्रतिलिपि करने के लिए लागू करते हैं और जब तक आप संघर्ष है गुप्त कोष से परिवर्तन निकाल देंगे कर रहे हैं। संघर्ष के मामले में, वे छेड़छाड़ में रहेंगे ताकि यदि आवश्यक हो तो आप शुरू कर सकते हैं।

अगर आप क्या गुप्त कोष

git stash list 
+3

क्या इसे एक कमांड में बनाने की संभावना है? –

+0

@java_newbie, अगर आप इसे छेड़छाड़ और खींचने के साथ करना चाहते हैं, तो कोई रास्ता नहीं है। लेकिन आप रिबेस के साथ एक ही परिणाम प्राप्त कर सकते हैं। कमांड 'गिट रीबेस मूल/<अपस्ट्रीम शाखा का नाम>' वही काम करना चाहिए। – yilmazhuseyin

+3

मुझे लगता है कि यह ऐसा करेगा: 'गिट स्टैश और& git pull && git stash pop' –

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