2012-12-18 49 views
12

मैंने कई काम किए (प्रतिबद्ध 1/2/3) किए, मैंने बिना काम किए मेरी कार्य निर्देशिका बदल दी। तब मैं कई काम पहले वापस जाना चाहता था। इसलिए मैं git वापस लाएं commit1 commit2 commit3, लेकिन मैं अपने परिवर्तन (commit4) प्रतिबद्ध करने के लिए कहा गया था, तो मैं यह किया है, और फिर मैं फिर से वापस लाएं commit1 commit2 commit3 commit4 git किया है, लेकिन मैं एक संदेश मिला,गिट रिवर्ट विफल

error: a cherry-pick or revert is already in progress hint: try "git cherry-pick (--continue | --quit | --abort)"

जब मैं गिट शाखा -वा चलाता हूं, हेड 3

मुझे यह समझ में नहीं आता कि क्या हो रहा है। चीज़ों को वापस करने के लिए अब मुझे क्या करना चाहिए?

उत्तर

16

स्वच्छ सूचकांक और काम करने वाले पेड़ के साथ एक वापसी शुरू करना सबसे अच्छा है।
अन्यथा, एक दूसरी वापसी (एक नई प्रतिबद्धता के शीर्ष पर) करना, जबकि पिछली वापसी प्रगति पर थी, उस त्रुटि संदेश की ओर जाता है।

जब से तुम commit 3 पर अभी भी कर रहे हैं, आप कर सकते हैं:

  • git cherry-pick --quit (। जो, this thread से, बताता है HEAD अकेला छोड़ दो और रास्ते से हट जाओ करने के लिए वापस),
  • अपने सूचकांक और काम की जांच पेड़ (Git स्थिति),
  • और फिर अपने git revert से पूर्ववत कर किसी भी समायोजन एक साफ स्थिति (एक नई तरह प्रतिबद्ध) प्राप्त करने के लिए करते हैं।

(आप "Rollback to Previous Commit - Github for MAC (a revert is already in progress)" पर अन्य विकल्प देख सकते हैं)

git reset मत भूलना अगर आप बस (उन तीन प्रतिबद्ध के बारे में भूल करने के लिए हालांकि यह है कि आप एक धक्का के लिए मजबूर हो जाएगा चाहते हैं: क्रम में, git push --force उस शाखा के लिए अपना इतिहास प्रकाशित करने के लिए। यदि अन्य सहयोगी पहले से ही उसी शाखा से खींच चुके हैं, तो git revert का उपयोग करके आपका दृष्टिकोण बेहतर है)