2014-09-08 7 views
5

मैं एक दूरस्थ करने के लिए प्रतिबद्ध पुश करने के लिए कोशिश कर रहा हूँ और यह त्रुटि संदेश मिल "क्योंकि एक धक्का दिया शाखा टिप इसके दूरदराज के समकक्ष के पीछे है अद्यतन अस्वीकार कर दिया गया":कैसे Git में इस मुद्दे को ठीक करने के लिए:

$ git push origin master 
To [email protected]:hbrosuru.git 
! [rejected]  ab68c0485d -> master (non-fast-forward) 
error: failed to push some refs to '[email protected]:hbrosuru.git' 
hint: Updates were rejected because a pushed branch tip is behind its remote 
hint: counterpart. Check out this branch and integrate the remote changes 
hint: (e.g. 'git pull ...') before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

मुझे लगता है कि मुझे इस एकल रिमोट शाखा में कई स्थानीय शाखाओं को दबाकर कहीं भी एक गड़बड़ी हो गई है और मैं मूल रूप से सर्वर पर क्या करना चाहता हूं और पूरी शाखा को ताजा से धक्का देना चाहता हूं। क्या यह संभव है, या इस त्रुटि को ठीक करने का कोई बेहतर तरीका है?

Ps। यह रिमोट शाखा फोर्टब्रिबिट पर होस्ट की गई है, इसलिए मुझे बस शाखा को हटाने और एक नया निर्माण करने के लिए सर्वर तक पूर्ण पहुंच नहीं मिली है क्योंकि फोर्टब्रिब की तैनाती तंत्र गिट पर आधारित है।

+0

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

+1

इसके अलावा, आप किस शाखा पर होना चाहते हैं? इस पंक्ति पर ध्यान दें: 'ab68c0485d -> मास्टर (गैर-फास्ट-फॉरवर्ड)' - इसका मतलब है कि आप शाखा में नहीं हैं, क्योंकि आपके वर्तमान हेड को शाखा नाम के बजाय एक प्रतिबद्ध हैश ('ab68c0485d') द्वारा संदर्भित किया जाता है ('master')। यदि आप मौजूदा हेड को नया मास्टर बनना चाहते हैं, तो 'गिट शाखा-एफ मास्टर ab68c0485d && गिट चेकआउट मास्टर' का उपयोग करें और फिर अपने पुश को आजमाएं। –

+0

http://stackoverflow.com/questions/10298291/cannot-push-to-github-keeps-saying-need-merge – Adil

उत्तर

8

मैं मूल रूप से सर्वर पर क्या है और ताजा से पूरी शाखा को धक्का देना चाहता हूं।

यह संभवतः बल पुश का अर्थ है। ध्यान दें कि बल धक्का आमतौर पर करने के लिए एक सुरक्षित चीज नहीं है, और विशेष रूप से गिटहब जैसे साझा स्रोत कोड भंडार को दबाते समय टालना चाहिए। लेकिन इस स्थिति में, जहां आप एक PaaS सर्वर को अद्यतन करने के लिए दबाव डाल रहे हैं, यह संभवतः ठीक है।

आप gitk, git log --all --graph --decorate, या बलपूर्वक धक्का देने से पहले कुछ अन्य टूल का उपयोग करके ग्राफिक रूप से अपनी शाखाओं को विज़ुअलाइज़ करना चाहते हैं, बस यह सुनिश्चित करने के लिए कि सब कुछ आपकी अपेक्षा की तरह दिखता हो।

अपने origin दूरदराज के master शाखा के लिए अपने स्थानीय master शाखा धक्का सफल होने के लिए केवल तभी अपनी स्थानीय शाखा एक के संबंध में अप टू डेट है बाध्य करने के लिए, चलाने

git push --force-with-lease origin master:master 

--force-with-lease तर्क का कारण होगा बल धक्का आप धक्का दे रहे हैं। (यह उन चीजों की आकस्मिक ओवरराइटिंग को रोकता है जिन्हें आप नहीं जानते हैं।) I दृढ़ता से पुराने --force तर्क के बजाय with-lease संस्करण का उपयोग करने की सलाह देते हैं, जो कम सुरक्षित है।

+2

के संभावित डुप्लिकेट, जो सामान्य त्रुटि से यहां आए लोगों के लिए दोहराने के लिए, शायद आप ** डॉन टी ** धक्का को मजबूर करना चाहता है जब तक कि आप ओपी की विशिष्ट स्थिति में न हों। यदि आप कई अन्य लोगों के साथ रेपो साझा कर रहे हैं और यह त्रुटि प्राप्त कर रहे हैं, तो एक सभ्य मौका है कि आप वैध रूप से पीछे हैं और पहले रिमोट शाखा खींचकर संघर्ष को हल करना चाहिए, किसी मर्ज टकराव को हल करना, * फिर * धक्का देना। – Sean

+0

मुझे एक ही समस्या थी। मैं दिए गए भंडार का उपयोग कर अकेला हूं, और मैंने एक रिबेस को निरस्त कर दिया और एक पुश ('-f') मजबूर कर दिया और फिर मैं ट्रैक पर वापस आ गया। –

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