घातक: तेजी से आगे बढ़ना, गर्भपात संभव नहीं


89

Git मुझे अब आगे मर्ज करने की अनुमति क्यों नहीं दे रहा है? यदि मैं इसका उपयोग करने के लिए मजबूर करने की कोशिश करता --ff-onlyहूं, तो मुझे संदेश मिलता है "घातक: तेजी से आगे बढ़ना, गर्भपात करना संभव नहीं है।" मुझे पता है कि इसके बहुत बड़े फायदे हैं merge --no-ff, लेकिन मैं हैरान हूं कि मैं --ff-onlyअब क्यों नहीं कर सकता ?

जवाबों:


95

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

आप अपनी शाखा को गंतव्य शाखा के शीर्ष पर पुनः स्थापित कर सकते हैं ( git rebase <destination branch>) कमिट्स को फिर से तैयार करने के लिए जैसे कि वे इसमें तेजी से आगे बढ़ेंगे, या आप एक नियमित मर्ज कर सकते हैं।


यह कैसे हो सकता है? यह सही नहीं है। यह कुछ सेटिंग होनी चाहिए जो बदल गई है।
मैथिक

3
@ मैथिक यह संदेश आपके पुल से आता है ffजो कमांड से सेट किया जा रहा हैgit config pull.ff only
अल डनकसन

82

git pull --rebase। अन्य समाधान के विपरीत, आपको अपनी गंतव्य शाखा का नाम जानने की आवश्यकता नहीं है।


11

इस त्रुटि को प्राप्त करने का कारण "मर्ज का संघर्ष" है। जब एक अपडेट के प्रत्येक चरण में आपके बदलावों को खींचे बिना आपकी GitHub फाइल में कई एडिट / अपडेट किए गए होते हैं तो यह मर्ज का कारण बनता है।

सामान्य मामला: -

$ git pull

नोट: - आपको एक त्रुटि मिलेगी। घातक: तेजी से आगे बढ़ना, गर्भपात संभव नहीं

इसको आजमाओ:-

$ git pull origin master --rebase

नोट: - अब इस कमांड के बाद, आपको मर्ज संघर्ष मुद्दे मिलेंगे। तो अब आप अपनी फ़ाइल पर जा सकते हैं और मैन्युअल रूप से संघर्ष को हल कर सकते हैं। संघर्ष में त्रुटि


1

ऐसा इसलिए है क्योंकि आपने फास्ट-फॉरवर्ड एकमात्र विकल्प को सक्षम किया है। यहाँ बात यह है कि शाखा से आपकी खींचतान आपके स्थानीय git में एक मर्ज कमिट बनाएगी और फास्ट-फॉरवर्ड एकमात्र विकल्प पुल के समय मर्ज कमिट बनाने की अनुमति नहीं देता है।

एक बड़ी टीम के मामले में, आप बहुत अधिक समय और प्रत्येक के लिए खींचतान से आने वाले संघर्षों को समाप्त करने और सुलझाने का प्रयास करेंगे।

मेरा सुझाव है कि आप ff = git लोकल कॉन्फिग फ़ाइल से केवल एक ही लाइन निकालें।

$ cd-my-project-root-dir

$ नैनो .it / config

[pull]
        ff = only // remove this line
        rebase = false

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