Git stash पॉप- मर्ज की जरूरत है, इंडेक्स को रिफ्रेश करने में असमर्थ


116

मैं अपने स्टैश को पॉप नहीं कर सकता क्योंकि मैंने एक ब्रांच को मर्ज कर दिया था, जो जाहिर तौर पर मेरे स्टैश से टकराती है और अब मेरा स्टैच पॉपप नहीं हो पा रहा है।

app.coffee: needs merge
unable to refresh index

किसी को पता है कि यह कैसे हल करने के लिए?

निर्धारित!

वास्तविक मुद्दे को मर्ज से एक अनसुलझा मर्ज संघर्ष था, कि इस टकराव के कारण मर्ज संघर्ष होगा।

रिज़ॉल्यूशन: विवादित फ़ाइल को कमिट करें।


6
यह दिलचस्प है कि स्वीकृत उत्तर जटिल है, जबकि वास्तविक समाधान काफी आसान है: आपको विवादित फ़ाइल भी नहीं करनी है, लेकिन इसे जोड़ें।
जवि वी

3
प्रश्न में उत्तर के रूप में अपना उत्तर जोड़ें।
ब्लैक

जवाबों:


67

सबसे पहले, जाँच करें git status
जैसा कि ओपी उल्लेख करता है,

वास्तविक मुद्दा मर्ज से एक अनसुलझा मर्ज संघर्ष था, न कि इस टकराव के कारण एक मर्ज संघर्ष होगा।

यह वह जगह है जहाँ git status" both modified" के रूप में उस फ़ाइल का उल्लेख होगा

रिज़ॉल्यूशन: विवादित फ़ाइल को कमिट करें।


आप इस उत्तर को लिखने के समय 4 दिन पहले (13 मार्च, 2012) इस पोस्ट के साथ एक समान स्थिति पा सकते हैं : " 'खींचना संभव नहीं है क्योंकि आपके पास अनरजिस्टर्ड फाइलें हैं ":

julita@yulys:~/GNOME/baobab/help/C$ git stash pop
help/C/scan-remote.page: needs merge
unable to refresh index

आपने मर्ज संघर्ष को ठीक करने के लिए क्या किया था (सही फ़ाइल को संपादित करना, और इसे कमिट करना):
" मैं Git में मर्ज संघर्ष कैसे ठीक करूं? "

ब्लॉग पोस्ट के लेखक ने क्या किया:

julita@yulys:~/GNOME/baobab/help/C$ git reset --hard origin/mallard-documentation
HEAD is now at ff2e1e2 Add more steps for optional information for scanning.

यानी वर्तमान मर्ज को पूरी तरह से खत्म करना, git stash popलागू करने की अनुमति देना ।
" गिट में एक विलय को देखें" ।

वे आपके दो विकल्प हैं।


1
कभी-कभी ऐसा भी होता है कि हम दूसरी शाखा में हैं। उदाहरण के लिए, मेरे पास शाखा ए है और कुछ परिवर्तन किए हैं और शाखा बी पर स्विच किया है और परिवर्तन किए हैं और उन्हें प्रतिबद्ध किया है। अब मैं शाखा ए जाना चाहता हूं, लेकिन ए पर चेकआउट करना और स्टैश लगाने की कोशिश करना भूल गया। इस मामले में, यह भी एक ही मुद्दा देता है। मैंने उपरोक्त मामले में इस मुद्दे का सामना किया।
कपिल वर्मा

मैंने सबकुछ किया लेकिन 'गिट बश पॉप' उन संघर्षों को वापस लाता है। मैं यह नहीं देखता कि जब मुझे वर्तमान बैच में बदलाव नहीं करना है तो मुझे वैसे भी क्यों प्रतिबद्ध होना चाहिए। मैं बस स्टैक्ड शाखा में वापस जाना चाहता हूं।
फिलिप रेगो

@PipipRego git bash पॉप? या git स्‍टैश पॉप? Git stash का उपयोग करने के बजाय स्टैश चेकआउट करने की कोशिश करें: stackoverflow.com/a/16625128/6309
VONC

सॉरी का मतलब था 'गिट स्टश पॉप'। मैंने पहले ही स्टाॅस को गिरा दिया, लेकिन मैं कोशिश करूंगा कि अगली बार मुझे यह समस्या हो। धन्यवाद
फिलिप रेगो

14

मैं इस मुद्दे को ले रहा था, फिर संघर्ष को हल करना और शुरू करना, और git stash popफिर से उसी संघर्ष को फिर से बहाल करना (समान संघर्ष का कारण :-()।

मुझे क्या करना था (चेतावनी: पहले अपना स्टाॅक बैक करें) git stash dropइससे छुटकारा पाना है।


4
बस, मेरा दम निकल गया। मैं इसे वापस जाना चाहता था।
फिलिप रेगो

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

8

स्वीकृत उत्तर की तुलना में यह बहुत सरल है। आपको:

  1. git statusइसके तहत चेक और अनमैरिड पथ। संघर्षों को ठीक करें। यदि आप इसे बाद में करना चाहते हैं तो आप इस चरण को छोड़ सकते हैं।

  2. उपयोग करने के लिए अनुक्रमणित पथ के तहत इन सभी फ़ाइलों को जोड़ें git add <filename>

  3. अब करते हैं git stash pop। यदि आपको कोई संघर्ष मिलता है तो इन्हें फिर से हल करने की आवश्यकता होगी।


6
इससे एक ही संघर्ष बार-बार होता है।
NaN

7

यहां बताया गया है कि मैंने इस मुद्दे को कैसे हल किया:

  • git स्टेटस (पिछली स्‍टैश से फ़ाइलों का मिश्रण देखें, स्‍टैश पॉप, और जारी काम।)
  • git stash (जरूरतों के मर्ज को देखें)
  • जोड़ देना। (फाइलों को जोड़ें ताकि मेरा काम स्थानीय रूप से मेरे अपने विलय का समाधान हो जाए)
  • git stash (कोई त्रुटि नहीं)
  • गिट पुल (कोई त्रुटि नहीं)
  • गिट स्टैश पॉप (कोई त्रुटि नहीं है और काम जारी रखें)

1
धन्यवाद ! यह मेरी मदद करो।
जूलियन बाल्दी

1
बहुत बढ़िया, git add .बिना कमिटमेंट मेरे लिए समस्या को हल करता है।
पॉल कार्लटन

5

यदि किसी को मर्ज / संघर्ष / कार्रवाई के बाहर यह समस्या हो रही है, तो यह आपकी परियोजना के लिए गिट लॉक फाइल हो सकती है, जो समस्या का कारण है।

git reset
     fatal: Unable to create '/PATH_TO_PROJECT/.git/index.lock': File exists.
rm -f /PATH_TO_PROJECT/.git/index.lock
git reset
git stash pop

1
resetआज्ञा से डरना । क्या आप बता सकते हैं कि यह क्यों काम करेगा?
एसएमबिग्स

1

मैंने पाया है कि सबसे अच्छा उपाय यह है कि अपने स्टैश को ब्रांच करें और बाद में एक रेजोल्यूशन करें।

git stash branch <branch-name>

यदि आप अपने स्टैश को हटाते हैं, तो आप अपने बदलावों को खो सकते हैं और आपको फिर से वापसी करना होगा।


1

आपको app.coffeeस्टेजिंग में जोड़ना होगा।

करो git add app.coffeeऔर फिर तुम अपना स्टेश (उसके बाद कमिट और पुश) लगा सकोगे।


0

स्‍टेश पहले ही अन्‍य फाइलों पर लागू हो चुका है।

केवल यह है app.coffeeकि आपको मैन्युअल रूप से मर्ज करना होगा। बाद में बस चलाते हैं

गिट रीसेट

परिवर्तनों को अस्थिर करना और हैक करना जारी रखें।


0

मैं उसी मुद्दे का सामना कर रहा था क्योंकि मैंने अपनी विकसित शाखा में कुछ बदलाव किए हैं और फिर प्रोफ़ाइल शाखा में जाना चाहता हूं। इसलिए मैंने बदलावों को रोक दिया है

git stash

फिर प्रोफाइल ब्रांच में मैंने भी कुछ बदलाव किए हैं और फिर से फिर से विकास के लिए आना चाहते हैं इसलिए मुझे फिर से परिवर्तनों को रोकना होगा

 git stash

लेकिन जब मैं शाखा को विकसित करने के लिए आता हूं और इसके द्वारा होने वाले परिवर्तनों को छिपाने की कोशिश करता हूं

git stash apply

इसलिए मुझे त्रुटि की आवश्यकता थी

इस समस्या को हल करने के लिए सबसे पहले मुझे स्टैश सूची को जांचना होगा

git stash list

तो यह मेरे मामले में हुई चोरी की सूची दिखाता है 2 झड़पों के नाम थे, जो इस तरह के प्रदर्शन को प्रदर्शित कर रहे हैं जैसे {{0}, stash @ {1}

जब मुझे इस आदेश द्वारा इसे प्राप्त करने का प्रयास किया जाता है, तो मुझे stash @ {1} से परिवर्तनों की आवश्यकता होती है

git stash apply stash@{1}

इसलिए त्रुटि को मर्ज करने की आवश्यकता थी

तो अब इस मुद्दे को हल करने के लिए अपनी फ़ाइलों की स्थिति की जाँच करें

git status

इसलिए यह इस रन को हल करने के लिए "दोनों संशोधित" त्रुटि दे रहा था

git add .

यह लापता संशोधित फ़ाइलों को जोड़ देगा अब फिर से स्थिति की जांच करेगा

git status 

इसलिए अब कोई त्रुटि नहीं है, अब स्टैश लगा सकते हैं

git stash apply stash@{1}

आप इस प्रक्रिया को किसी भी स्‍टैश फ़ाइलों के लिए कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.