2011-08-12 19 views
12

मेरे सहयोगी ने अपनी स्थानीय मास्टर शाखा में उत्पादन हॉटफिक्स के लिए कुछ बदलाव विलय कर दिया और फिर हमारे गिटहब भंडार में मास्टर की धक्का दी। अब मैं अपने स्थानीय मास्टर शाखा को अपने परिवर्तनों के साथ अपडेट करने का प्रयास कर रहा हूं। जब गिट कंसोल से "गिट पुल मूल" होता है तो ऐसा लगता है कि यह सभी फाइलें दिखाकर ठीक हो रहा है। लेकिन, अंत में यह सिर्फ "निरस्त करने" संदेश के साथ बंद हो जाता है।गिट पुल निरस्त करना

मुझे नहीं पता कि आगे क्या करना है। मदद?

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

मैं निश्चित रूप से .gitignore फ़ाइल को संपादित करने और इसे जांचने के लिए और अधिक सावधान रहना चाहता हूं। अब इसके प्रभाव के लिए मुझे कुछ नई प्रशंसा है अन्य डेवलपर्स पर।

+0

वास्तव में, वहाँ एक अन्य जिज्ञासा है कि या संबंधित नहीं किया जा सकता है। जब मेरे सहयोगी ने अपना धक्का दिया, तो चीजें 'लग रही थी' जैसे उन्होंने काम किया। लेकिन, जब हम गिटहब गए, तो कोई नई काम नहीं थी। अब गिट एक्सटेन्शंस में उनकी स्थानीय शाखा दृश्य सही दिखती है और हम गिटहब में अपने बदलाव भी देख पाए। तो जब आप स्थानीय मर्ज करते हैं तो पुश करें, क्या आप गिटहब पर एक नई प्रतिबद्धता देखने की उम्मीद नहीं करते हैं? और यदि नहीं, तो मैं कैसे बता सकता हूं कि गिटहब को देखकर मास्टर बदल गया था? – sisdog

+0

@ टिम, यह दिखाता है कि आपने मेरी पोस्ट संपादित की है। क्या तुमने कुछ बदल दिया? मुझे नहीं पता था कि लोग मेरी पोस्ट बदल सकते हैं और ... आपने इसे क्यों बदल दिया? – sisdog

+0

"संपादित 5 मिनट पहले" में "5 मिनट पहले" पर क्लिक करें और आप diff देखेंगे। उन्होंने अभी मामूली विराम चिह्न परिवर्तन किया है। –

उत्तर

8

वह शायद इसके शीर्ष के बजाय मौजूदा प्रतिबद्ध पेड़ में कहीं भी प्रतिबद्धता डालता है।

इस प्रयास करें:

git fetch origin 
git rebase origin/master 

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

मेरा अनुमान है कि not a fast-forward commit संदेश से बचने के लिए उसके धक्का को --force किसी बिंदु पर शामिल किया गया था। आप भविष्य में ऐसा नहीं करना चाहते हैं।

+0

धन्यवाद @ स्टेफन लेकिन मैं अभी भी मुद्दों में चल रहा हूं। कम से कम रिबेज चलाकर मुझे थोड़ा और जानकारी मिली। अंत में यह कहा: निरस्त करना - सिर को अलग न करें। क्या यह कोई सुराग प्रदान करता है? – sisdog

+0

क्या आपके पास स्थानीय रूप से कोई भी फाइल है जो रीबेस द्वारा बदली जाएगी? मूल की एक प्रति नई शाखा में जांचने का प्रयास करें, और देखें कि क्या कहता है। 'गिट चेकआउट -बी टेस्टब्रैंच मूल/मास्टर' –

+0

ठीक है, मुझे एक ही त्रुटि मिली लेकिन इस बार मैंने खिड़की में स्क्रॉल किया और कुछ और सीखा। तो, आदेश चलाने के तुरंत बाद मुझे यह संदेश मिलता है: "त्रुटि: निम्न अनचाहे काम करने वाली पेड़ फ़ाइलों को चेकआउट द्वारा ओवरराइट किया जाएगा:"। तो, यह असली समस्या है। लेकिन, समाधान क्या है? मुझे लगता है कि मेरे कॉलेग्यू ने .gitignore फ़ाइल को बदल दिया जिसने संस्करण नियंत्रण में नई फाइलों का एक गुच्छा जोड़ा। यह मुझे उन सभी फाइलों को दिखा रहा है। तो क्या मुझे शायद नवीनतम .gitignore फ़ाइल मिलनी चाहिए जो तब सभी नई फाइलें करे? – sisdog

5

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

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