त्रुटि मर्ज करें


264

मेरे पास 9-sign-in-outपूरी तरह से काम करने वाले कोड के साथ एक गिट शाखा है , और मैं इसे मास्टर में बदलना चाहता हूं। मैं वर्तमान में मास्टर शाखा पर हूँ।

$ git branch
9-sign-in-out
* master

मैं 9-sign-in-outशाखा में जाने की कोशिश कर रहा हूँ , लेकिन यह मुझे इसकी अनुमति नहीं देता है:

$ git checkout 9-sign-in-out
app/helpers/application_helper.rb: needs merge
config/routes.rb: needs merge
error: you need to resolve your current index first

किसी भी विचार मैं सभी मास्टर शाखा त्रुटियों को कैसे अनदेखा कर सकता हूं और 9-sign-in-outशाखा को मास्टर में बदल सकता हूं ? शायद गिट विद्रोह ? लेकिन मैं 9-sign-in-outशाखा में कोड खोना नहीं चाहता ।


क्या आपका मतलब है कि आप 9-साइन-इन-आउट में अपना अनकम्प्रेस्ड कोड नहीं खोना चाहते हैं?
मावी लेडफोर्ड

@ मौविस: मैंने पहले ही शाखा में अपने कोड ९-साइन-इन-आउट कर दिए हैं।
सयानी

जवाबों:


531

यह समझने लायक है कि उन त्रुटि संदेशों का क्या मतलब है - needs mergeऔर error: you need to resolve your current index firstसंकेत मिलता है कि एक मर्ज विफल हो गया है, और यह कि उन फाइलों में संघर्ष हैं। यदि आपने तय कर लिया है कि आप जो भी मर्ज करने की कोशिश कर रहे थे, वह सब के बाद एक बुरा विचार था, तो आप चीजों को वापस सामान्य कर सकते हैं:

git reset --merge

हालांकि, अन्यथा आपको उन मर्ज संघर्षों को हल करना चाहिए, जैसा कि गिट मैनुअल में वर्णित है


एक बार जब आप उस तकनीक से निपट जाते हैं, तो आपको 9-sign-in-outशाखा की जांच करने में सक्षम होना चाहिए । WRAR के उत्तर में दिए गए सुझाव के अनुसार , अपने नाम 9-sign-in-outको बदलने के साथ समस्या यह है कि यदि आपने अपनी पिछली मास्टर शाखा को किसी के साथ साझा किया है, तो यह उनके लिए समस्याएँ पैदा करेगा, क्योंकि यदि दो शाखाओं के इतिहास को बदल दिया जाता है, तो आप फिर से प्रकाशित करेंगे। इतिहास।master

अनिवार्य रूप से आप जो करना चाहते हैं, वह अपनी विषय शाखा 9-sign-in-outमें विलय करना है, masterलेकिन विषय शाखा में फ़ाइलों के संस्करणों को ठीक से रखें। आप निम्न चरणों के साथ ऐसा कर सकते हैं:

# Switch to the topic branch:
git checkout 9-sign-in-out

# Create a merge commit, which looks as if it's merging in from master, but is
# actually discarding everything from the master branch and keeping everything
# from 9-sign-in-out:
git merge -s ours master

# Switch back to the master branch:
git checkout master

# Merge the topic branch into master - this should now be a fast-forward
# that leaves you with master exactly as 9-sign-in-out was:
git merge 9-sign-in-out

1
मार्क, आखिरकार मुझे समझ में आ गया कि अब मैं विलय करने के लिए दोबारा त्रुटि मिलने के बाद आप क्या कह रहे थे। हालाँकि, मुझे यह त्रुटि हो रही है :::::::::::: Sayanee: twitter sweska $ git चेकआउट मास्टर त्रुटि: निम्नलिखित फ़ाइलों में आपके स्थानीय परिवर्तन चेकआउट द्वारा अधिलेखित हो जाएंगे: webrat.log कृपया, कमिट करें इससे पहले कि आप शाखाओं को स्विच कर सकें, आपके परिवर्तन या उन्हें रोक दें। गर्भपात :::::::::::::::: किसी भी तरह से, शाखा में मलबे के उपयोगकर्ता के लिए और इसे मास्टर के साथ मिलाने के लिए?
सयानी

1
@ सयानी: यह एक अलग त्रुटि है, विभिन्न परिस्थितियों से उत्पन्न होती है, और इसके बारे में एक नया प्रश्न पूछना बेहतर होगा यदि आप इसके बारे में भ्रमित हैं। (संक्षेप में, हालांकि, git ने आपको शाखाओं को स्विच करने से रोक दिया है क्योंकि इससे webrat.log
अप्रभावित

मैं बस पूरी बात rm करता था और पुनः प्राप्त करता था। लेकिन यह अच्छा है।
सूदो

43
git checkout -f 9-sign-in-out # change branch, discarding all local modifications
git branch -M master # rename the current branch to master, discarding current master

3
मुझे लगता है कि मार्क की तरह मर्ज को रीसेट करने के लिए इसका बहुत क्लीनर चेकआउट के लिए मजबूर करने के बजाय नीचे सुझाया गया है।
थॉमस

8

जैसा कि सुझाव दिया गया है git status,

Unmerged paths:                                                                                                                                
(use "git add <file>..." to mark resolution)                                                                                                 

    both modified:   a.jl                                  
    both modified:   b.jl

मैं git addविलय को पूरा करता था, फिर git checkoutठीक काम करता था।



-6

git कमिट-एम "मर्ज मास्टर फिक्स्ड संघर्ष।"

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