इसका क्या मतलब है जब गिट एक फ़ाइल "अद्यतन की जरूरत है" कहते हैं?


156

मैं अपने जीवन के लिए "[फ़ाइल]: को अपडेट करने की आवश्यकता है" का कोई भी स्पष्ट विवरण नहीं मिल सकता है, जो कभी-कभी समय-समय पर बाहर थूकता है। यहां तक ​​कि आधिकारिक git FAQ ने इसे TODO के रूप में चिह्नित किया है। यदि कोई व्यक्ति A को समझा सके कि इसका क्या अर्थ है; और बी) इसे कैसे ठीक किया जाए, मैं बहुत आभारी रहूंगा।


1
अच्छा सवाल, जैसा कि आपने कहा कि GitFaq का भी कोई जवाब नहीं है: git.wiki.kernel.org/index.php/…
जस्टिन


1
क्या आप वास्तव में बता सकते हैं कि यह कौन सा कमांड है? और Git का कौन सा संस्करण? मैंने उन्हें UI से निकालने की कोशिश की है, इसलिए हाल ही में Git को आपको यह नहीं बताना चाहिए कि मैं भूल गए हैं ;-)।
मैथ्यू मोय

जवाबों:


108

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


4
यह वास्तव में पुल नहीं है - यह मर्ज है जो पुल का हिस्सा है। यदि आप एक ही समस्या के साथ एक स्थानीय शाखा को मर्ज करने का प्रयास करते हैं, तो आपको वही त्रुटि दिखाई देगी, और मुझे लगता है कि अन्य मर्ज़ी संचालन (लागू करें, लागू करें ...) समान त्रुटियों को प्रिंट करें यदि एक ही नहीं।
Cascabel

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

7
यदि यह खोज परिणामों में मदद करता है, तो मैं इस मुद्दे पर भी git svn rebaseकाम करने की कोशिश कर रहा हूं कि एक गंदे काम की प्रतिलिपि के साथ क्या करना है। स्लैश सेव, रिबास, स्टैश पॉप, और सभी दुनिया के साथ सही था।
एडम टटल

1
फ़ाइल स्वयं नहीं बदली जा सकती - यहां तक ​​कि फ़ाइल विशेषताएँ (जैसे अनुमतियां) भी इसे बदल सकती हैं।
चिबॉर्ग

22

जैसा कि अन्य ने बताया है, अपडेट संदेश की जरूरत है कि फाइल गंदी है या दूसरे शब्दों में, पुरानी है। लेकिन फिर से रीसेट करने और फिर से शुरू करने के बजाय, जो किया जा सकता है वह बस git statusऔर फिर git add <file> अगर यह बदली हुई सूची में है। क्योंकि आप फ़ाइल को पहले ही जोड़ सकते थे, लेकिन फिर उसे बदल दिया। यह मेरे साथ हुआ, और इस सरल से addमैंने समस्या को हल कर दिया है।


7

cdअपने एप्लिकेशन में मौजूद डायरेक्टरी में अपने प्रोडक्शन / डेस्टिनेशन सर्वर में लॉग इन करें और उन दो कमांड को निष्पादित करें।

1. नवीनतम संस्करण पर रीसेट करें

चेतावनी, यह आपके सभी परिवर्तनों को हटा देगा:

git reset --hard HEAD

2. परिवर्तन खींचो

git pull origin master


1
[git reset --hard HEAD] मेरे लिए काम किया। मैंने एक विंडोज शेयर ड्राइव से प्रतिबद्ध किया था, लेकिन मेरी उबंटू निर्देशिका ने जो भी फ़ोल्डर बनाया था, मैं उसे प्रतिबिंबित नहीं करूंगा, भले ही यह एक ही फ़ोल्डर था (Z: mapped to / var / www / html /)। इसे चलाने के बाद, [git स्टेटस] और [git पुल] दोनों अब दिखाते हैं कि यह अप-टू-डेट है।
कीथ डीसी

यही वह समाधान है जिसने मेरे लिए भी काम किया। मैंने विंडोज पर SourceTree का उपयोग करके गिट उपट्री का उपयोग करने की कोशिश की, और यह प्रक्रिया में बुरी तरह से खराब हो गया।
आर्टेम रसाकोवस्की

3

लिंक किए गए अन्य प्रश्न के उत्तर की तरह, संदेश का सीधा सा अर्थ है कि आपके पास बकाया परिवर्तन हैं। आपको यह भी मिलता है जैसे अगर आप कुछ बदलावों को मंच देते हैं git add, तो अपने दिमाग को बदलें और git reset HEAD fileशुरू करने के इरादे से करें।


2
git reset HEAD fileएक ही संदेश प्रकट होने का कारण बनता है
विशेषज्ञ

2

यह त्रुटि तब हो सकती है जब रिबेस की प्रक्रिया उन फ़ाइलों में अतिरिक्त परिवर्तन करती है जो लक्ष्य शाखा पर नहीं हैं।

मेरे लिए मुश्किल हिस्सा .gitattributesमेरे रेपो में फ़ाइल के साथ था । नई बाइनरी फ़ाइल प्रकार को किसी अन्य शाखा में जोड़ा गया था लेकिन इसे संभालना पाठ फ़ाइल के रूप में मजबूर किया गया था। जब फ़ाइल को git द्वारा रेपो से डाउनलोड किया गया था, तो EOLs (यह बाइनरी वैल्यू बाइट्स वास्तव में है) को बदल दिया गया था - जिसके परिणामस्वरूप बाइनरी अंतर था।

नई फ़ाइल प्रकार को बाइनरी के रूप में संभालने के लिए नई प्रविष्टि जोड़ना और मेरे लिए पूरी प्रक्रिया को हल करने की समस्या को फिर से लेना।


1

मेरे मामले में, मैं मिलता रहा

assets/ElipseThree.png: needs update
You must edit all merge conflicts and then
mark them as resolved using git add

मेरी निर्देशिका में वे फाइलें थीं, लेकिन उनका नाम बदलकर मेरी वर्तमान शाखा में रखा गया था। तो ठीक करने के लिए, मैं भागा

$ git mv assets/ElipseThree.png assets/elipseThree.png
$ git add assets/elipseHalfFull.png 
$ git rebase --continue

और इसने मुझे जारी रखने की अनुमति दी

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