आपने अपना मर्ज समाप्त नहीं किया है (MERGE_HEAD मौजूद है)


1035

मैंने 'f' नामक एक शाखा बनाई और मास्टर करने के लिए एक चेकआउट किया। जब मैंने git pullकमांड की कोशिश की तो मुझे यह संदेश मिला:

You have not concluded your merge (MERGE_HEAD exists).
Please, commit your changes before you can merge.

जब मैं कोशिश करता हूं git status, तो यह मुझे निम्नलिखित देता है:

On branch master
# Your branch and 'origin/master' have diverged,
# and have 1 and 13 different commit(s) each, respectively.
#
# Changes to be committed:
#
#   modified:   app/assets/images/backward.png
#   modified:   app/assets/images/forward.png
#   new file:   app/assets/images/index_background.jpg
#   new file:   app/assets/images/loading.gif
#   modified:   app/assets/images/pause.png
#   modified:   app/assets/images/play.png
#   new file:   app/assets/javascripts/jquery-ui-bootstrap.js
#   new file:   app/assets/stylesheets/jquery-ui-bootstrap.css
#   modified:   app/controllers/friends_controller.rb
#   modified:   app/controllers/plays_controller.rb
#   modified:   app/mailers/invite_friends_mailer.rb
#   modified:   app/mailers/send_plays_mailer.rb
#   modified:   app/mailers/shot_chart_mailer.rb
#   modified:   app/views/friends/show_plays.html.erb
#   modified:   app/views/layouts/application.html.erb
#   modified:   app/views/plays/_inbox_table.html.erb
#   modified:   app/views/plays/show.html.erb
#   modified:   app/views/welcome/contact_form.html.erb
#   modified:   app/views/welcome/index.html.erb
#   modified:   log/development.log
#   modified:   log/restclient.log
#   new file:   tmp/cache/assets/C1A/C00/sprockets%2Fb7901e0813446f810e560158a1a97066
#   modified:   tmp/cache/assets/C64/930/sprockets%2F65aa1510292214f4fd1342280d521e4c
#   new file:   tmp/cache/assets/C73/C40/sprockets%2F96912377b93498914dd04bc69fa98585
#   new file:   tmp/cache/assets/CA9/090/sprockets%2Fa71992733a432421e67e03ff1bd441d8
#   new file:   tmp/cache/assets/CCD/7E0/sprockets%2F47125c2ebd0e8b29b6511b7b961152a1
#   modified:   tmp/cache/assets/CD5/DD0/sprockets%2F59d317902de6e0f68689899259caff26
#   modified:   tmp/cache/assets/CE3/080/sprockets%2F5c3b516e854760f14eda2395c4ff2581
#   new file:   tmp/cache/assets/CED/B20/sprockets%2F423772fde44ab6f6f861639ee71444c4
#   new file:   tmp/cache/assets/D0C/E10/sprockets%2F8d1f4b30c6be13017565fe1b697156ce
#   new file:   tmp/cache/assets/D12/290/sprockets%2F93ae21f3cdd5e24444ae4651913fd875
#   new file:   tmp/cache/assets/D13/FC0/sprockets%2F57aad34b9d3c9e225205237dac9b1999
#   new file:   tmp/cache/assets/D1D/DE0/sprockets%2F5840ff4283f6545f472be8e10ce67bb8
#   new file:   tmp/cache/assets/D23/BD0/sprockets%2F439d5dedcc8c54560881edb9f0456819
#   new file:   tmp/cache/assets/D24/570/sprockets%2Fb449db428fc674796e18b7a419924afe
#   new file:   tmp/cache/assets/D28/480/sprockets%2F9aeec798a04544e478806ffe57e66a51
#   new file:   tmp/cache/assets/D3A/ED0/sprockets%2Fcd959cbf710b366c145747eb3c062bb4
#   new file:   tmp/cache/assets/D3C/060/sprockets%2F363ac7c9208d3bb5d7047f11c159d7ce
#   new file:   tmp/cache/assets/D48/D00/sprockets%2Fe23c97b8996e7b5567a3080c285aaccb
#   new file:   tmp/cache/assets/D6A/900/sprockets%2Fa5cece9476b21aa4d5f46911ca96c450
#   new file:   tmp/cache/assets/D6C/510/sprockets%2Fb086a020de3c258cb1c67dfc9c67d546
#   new file:   tmp/cache/assets/D70/F30/sprockets%2Facf9a6348722adf1ee7abbb695603078
#   new file:   tmp/cache/assets/DA3/4A0/sprockets%2F69c26d0a9ca8ce383e20897cefe05aa4
#   new file:   tmp/cache/assets/DA7/2F0/sprockets%2F61da396fb86c5ecd844a2d83ac759b4b
#   new file:   tmp/cache/assets/DB9/C80/sprockets%2F876fbfb9685b2b8ea476fa3c67ae498b
#   new file:   tmp/cache/assets/DBD/7A0/sprockets%2F3640ea84a1dfaf6f91a01d1d6fbe223d
#   new file:   tmp/cache/assets/DC1/8D0/sprockets%2Fe5ee1f1cfba2144ec00b1dcd6773e691
#   new file:   tmp/cache/assets/DCC/E60/sprockets%2Fd6a95f601456c93ff9a1bb70dea3dfc0
#   new file:   tmp/cache/assets/DF1/130/sprockets%2Fcda4825bb42c91e2d1f1ea7b2b958bda
#   new file:   tmp/cache/assets/E23/DE0/sprockets%2Fb1acc25c28cd1fabafbec99d169163d3
#   new file:   tmp/cache/assets/E23/FD0/sprockets%2Fea3dbcd1f341008ef8be67b1ccc5a9c5
#   modified:   tmp/cache/assets/E4E/AD0/sprockets%2Fb930f45cfe7c6a8d0efcada3013cc4bc
#   new file:   tmp/cache/assets/E63/7D0/sprockets%2F77de495a665c3ebcb47befecd07baae6
#   modified:   tmp/pids/server.pid
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   Coachbase/
#   log/development.log.orig
#   log/restclient.log.orig

मुझे क्या करना चाहिए?

जवाबों:


1917

ठीक। समस्या यह है कि आपका पिछला पुल स्वचालित रूप से विलय करने में विफल रहा और संघर्ष की स्थिति में चला गया। और संघर्ष अगले पुल से पहले ठीक से हल नहीं किया गया था।

  1. मर्ज को पूर्ववत करें और फिर से खींचें।

    मर्ज को पूर्ववत् करने के लिए:

    git merge --abort [जीआईटी संस्करण 1.7.4 के बाद से]

    git reset --merge [पूर्व git संस्करण]

  2. संघर्ष को हल करो।

  3. मर्ज जोड़ना और करना न भूलें।

  4. git pull अब ठीक काम करना चाहिए।


2
मैंने कोशिश की और मुझे फाइलों में संघर्ष (जब खींचो) ऑटो-मर्जिंग ऐप / विचार / लेआउट / application.html.erb ऑटो-मर्जिंग लॉग / डेवलपमेंट।लॉग CONFLICT (सामग्री): लॉग / डेवलपमेंट में विलय संघर्ष। ऑटो-मर्जिंग log / restclient.log CONFLICT (सामग्री): लॉग / restclient.log स्वचालित मर्ज में मर्ज संघर्ष विफल; संघर्ष को ठीक करें और फिर परिणाम करें। मैंने निर्दिष्ट स्थानीय फ़ाइलों को निर्धारित किया, और फिर मैंने कोशिश की 'पुल पुलिंग' खींचना संभव नहीं है क्योंकि आपके पास अनमैरिड फाइलें हैं। कृपया, उन्हें कार्य ट्री में ठीक करें, और फिर 'git add / rm <file>' का उपयोग करें, जैसा कि रिज़ॉल्यूशन को चिह्नित करने के लिए उपयुक्त है, या 'git प्रतिबद्ध -a' का उपयोग करें।
अंकित सूरी

1
@AnkitSuri, संघर्षों को ठीक करने के बाद, क्या आपने उन्हें मंच दिया और प्रतिबद्ध किया?
कार्तिक बोस

1
मैंने इसकी कोशिश की और यह मुझे फिर से प्रवाह में लाने में मदद करता है। वापस लौटने के बाद मैंने "गिट मेरिजेट" की कोशिश की। यह सीधे विलय उपकरण के साथ जुड़ा हुआ है।
CoDe

4
काम नहीं करता है:[env]$ git merge --abort fatal: You have not concluded your merge (MERGE_HEAD exists). Please, commit your changes before you can merge.
user1429980

1
@ कार्तिकबोस, यह वास्तव में काम करना समाप्त कर दिया। चूंकि मैं एसएसएच पर काम कर रहा था, इसलिए मुझे एक नया सत्र शुरू करना था और ए git status
user1429980

97

यदि आप सुनिश्चित हैं कि आपने पहले ही सभी मर्ज संघर्षों को हल कर लिया है:

rm -rf .git/MERGE*

और त्रुटि गायब हो जाएगी।


2
यदि आप MERGE_HEAD को हटाते हैं, तो परिणामी प्रतिबद्ध में केवल एक माता-पिता नहीं होंगे, ताकि आपके पास मर्ज की गई शाखा का इतिहास न हो?
जेसन गोएमाट

2
इस मैं क्या चाहता था
gumay Raditya

1
@JasonGoemaat मेरे मामले में मैं अस्थायी रूप से कई पीआर में विलय कर रहा हूं जिसे अभी तक स्वीकार नहीं किया गया है। मैं सुविधा शाखा में उन मर्ज करने की योजना नहीं बनाता, मुझे सिर्फ विकास के दौरान उनकी आवश्यकता है।
एंडी

मैंने पहले ही अपने संघर्षों को हल कर लिया था और अभी भी यह त्रुटि हो रही थी। इसलिए कमांड ने मेरे लिए काम किया।
सिब्गा

इसने मुझे एक विलीन मर्ज संघर्ष पाश से बचा लिया।
स्लेज

68

मुझे लगता है कि यह उल्लेख के लायक है कि ऐसे कई परिदृश्य हैं जिनमें संदेश आ You have not concluded your merge (MERGE_HEAD exists)सकता है, क्योंकि बहुत से लोग इस संदेश को खोजने के बाद शायद इस पृष्ठ पर आ गए हैं। संकल्प इस बात पर निर्भर करेगा कि आप वहां कैसे पहुंचे।

git status हमेशा एक उपयोगी प्रारंभिक बिंदु है।

यदि आपने पहले ही अपनी संतुष्टि के लिए सामग्रियों को मर्ज कर दिया है और अभी भी यह संदेश प्राप्त कर रहे हैं, तो यह करना उतना ही सरल हो सकता है

git add file
git commit

लेकिन फिर, यह वास्तव में स्थिति पर निर्भर करता है। कुछ भी प्रयास करने से पहले मूल बातें समझने के लिए एक अच्छा विचार है (एक ही लिंक टेरेंस पोस्ट किया गया): गिट - बेसिक मर्ज संघर्ष


यह पूछने के लिए, हम में से उन लोगों के लिए धन्यवाद जो सरल प्रकार की समस्या के साथ हैं। "गिट की स्थिति" मेरे लिए एक नौसिखिया की जरूरत थी, यह याद दिलाने के लिए कि एक विवादित मर्ज को ठीक करने का अंतिम चरण सरल कमांड "गिट कमिट" था।
दाना

17

मुझे लगता है कि यह सही तरीका है:

git merge --abort

git fetch --all

फिर, आपके पास दो विकल्प हैं:

git reset --hard origin/master

या यदि आप किसी अन्य शाखा में हैं:

git reset --hard origin/<branch_name>

2
केवल git मर्ज --abort ने खुद ही काम किया && git पुल तब
luky

8

मैंने संघर्षों को सुलझाया और प्रतिबद्ध भी लेकिन फिर भी इस त्रुटि संदेश को प्राप्त कर रहा हूं git push

सभी विरोध निश्चित हैं लेकिन आप अभी भी विलय कर रहे हैं।
(मर्ज समाप्त करने के लिए "गिट कमिट" का उपयोग करें)

त्रुटि को हल करने के लिए मैंने ये कदम उठाए:

rm -rf .git/MERGE*
git pull origin branch_name 
git push origin branch_name

pushअंत में क्या होता है?
मार्क स्टॉपर

6

प्रयत्न

git reset --hard origin/trunk

'ट्रंक' वह शाखा है जिसे मैं प्राप्त करने की कोशिश कर रहा हूं।

मुझे नहीं पता कि यह कैसे या क्यों काम करता है। यह मेरे द्वारा किए गए कुछ प्रतिबद्धताओं के साथ कुछ करने के लिए था, जो मेरे मर्ज को करने के लिए अनुरोधों को मजबूर कर रहा था।


5

किसी भी अस्थायी फ़ाइल को बदलने का प्रयास करें। जैसे किसी भी स्पेस को हटाएं या स्पेस जोड़ें और फिर उस फाइल को कमिट करें और पुश करें।

git add 'tempor_change_file'

git कमिट-मी "git issue resolve"

git पुश ओरिजिन विकसित होता है

और फिर गिट पुल का प्रयास करें,

git पुल उत्पत्ति का विकास

आशा है कि यह आपकी मदद कर सकता है।


4

Blockquote

यदि आप दूसरी शाखा से अपनी शाखा में खींचने का प्रयास कर रहे हैं। यदि आप इस त्रुटि को देख रहे हैं।

पहले, आपको जीआईटी कमिट करने की कोशिश करनी चाहिए और फिर दूसरी ब्रांच को अपने अंदर खींच लेना चाहिए।

  1. "गिट ऐड।"
  2. कमिट
  3. फिर आवश्यक शाखा से गिट पुल करें।

3

मेरे मामले में मेरे पास एक चेरी पिक थी जो कई मर्ज संघर्षों का उत्पादन करती है, इसलिए मैं चेरी पिक को पूरा नहीं करने का फैसला करता हूं। मैंने अपने सभी परिवर्तनों को त्याग दिया। ऐसा करने से मुझे ऐसी स्थिति में डाल दिया गया जहाँ मुझे निम्नलिखित त्रुटि मिली:

आपने अपना मर्ज समाप्त नहीं किया है (MERGE_HEAD मौजूद है

समस्या को ठीक करने के लिए मैंने निम्नलिखित git कमांड का प्रदर्शन किया जिसने समस्या को ठीक किया।

git cherry-pick --abort

2

सबसे अच्छा तरीका मर्ज को पूर्ववत करना और मर्ज को फिर से करना है। अक्सर आपको चीजों को गड़बड़ करने का आदेश मिलता है। कोशिश करें और संघर्ष को ठीक करें और अपने आप को एक गड़बड़ में मिलाएं।

तो पूर्ववत करें और फिर से विलय करें।

सुनिश्चित करें कि आपके पास अपने वातावरण के लिए उपयुक्त अलग उपकरण सेटअप है। मैं एक मैक पर हूं और DIFFMERGE का उपयोग करता हूं। मुझे लगता है कि DIFFMERGE सभी वातावरणों के लिए उपलब्ध है। निर्देश यहां हैं: मैक पर डीआईएफएफ मर्ज स्थापित करें

मेरे पास अपने संघर्षों को हल करने में यह सहायक है: Git Basic-Merge-Conflicts


1

सबसे पहले, git pullरिपॉजिटरी को मर्ज करने के लिए अपने परिवर्तन को सहेजें git commit -m "your commit"। फिर से टाइप करें ।


0

मर्ज मर्ज परिवर्तन से मेरी समस्या हल हो गई:

git commit -m "commit message"

-12

यह मेरे लिए काम किया:

git log
`git reset --hard <089810b5be5e907ad9e3b01f>`
git pull
git status

3
सबसे पहले, यह सभी कार्यशील निर्देशिका परिवर्तनों को हटा देगा। इसके अलावा हार्डकोड संस्करण मददगार नहीं है, शायद HEAD ^ जैसा कुछ बेहतर है।
एंटोमो

@ प्लस 1 यह वही है जो मुझे चाहिए - मेरे गलत स्थानीय कमेंट्स को हटा दें और बदले हुए स्रोत कोड के संबंध में परिवर्तन लागू करें। आपके उत्तर के लिए धन्यवाद!
अमूलर

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