2012-10-23 16 views
51

पुश करने के लिए मैं यह अजीब मुद्दा है, यह कुछ भी करने को मना कर दिया जब भी मैं git push करना है मना कर:Git: घातक: वर्तमान शाखा गुरु, कई अपस्ट्रीम शाखाएं हैं

fatal: The current branch master has multiple upstream branches, refusing to push.

यह लगता जब मैं git push -u origin master करना एक नज़र रखने शाखा के रूप में सेट करने के लिए:

Branch master set up to track remote branch master from origin.

लेकिन अगली बार मैं git push कोशिश यह यह फिर से ऐसा करने के लिए मना कर दिया। मैंने Google की कोशिश की लेकिन ऐसा लगता है कि समस्या काफी नई है और मुझे इस व्यवहार के लिए कोई स्पष्टीकरण नहीं मिला। विचार?

अद्यतन:./git/config

[remote "origin"] 
    fetch = +refs/heads/*:refs/remotes/origin/* 
    url = [email protected]:milk.git 
[branch "master"] 
    remote = origin 
    merge = refs/heads/master 

Update2:git config remote.origin.push HEAD साथ हल निम्न पंक्ति [remote "origin"] अनुभाग के लिए .git/config में प्रकाशित हुई:

push = HEAD 

Update3:

$ git branch -vv 
    billing  633c796 [origin/billing: behind 889] links 
* master  1a0de50 [origin/master: ahead 1] more fixes 
    new_master 3b880d7 [origin/new_master] branches diverged 
    photo_stacks 29c8f0d [origin/photo_stacks] 1st try 
    responsive 1dad980 [origin/responsive] update 

$ git push 
fatal: The current branch master has multiple upstream branches, refusing to push. 
+0

Git 2.0? Git-scm.com पर नवीनतम 1.8.0 है, मुझे गिटब रेपो में कुछ भी नहीं दिख रहा है .. क्या मुझे कुछ याद आ रहा है? – Collin

+0

क्षमा करें, क्षमा करें, गिट 1.8.0, मुझे पता क्यों मैंने 2.0 – firedev

+1

लिखा है आपकी '.git/config' फ़ाइल कैसी दिखती है, खासकर इस शाखा के लिए अनुभाग और आपकी उत्पत्ति? – twalberg

उत्तर

87

आप निम्न कार्य कर सकते हैं। मुझे यकीन नहीं है कि यह एक रिग्रेशन समस्या है, या यदि यह हमेशा मामला रहा है।

+0

से नीचे पीटर के सुझावों को आजमाएं, तो मदद मिली, लेकिन कैसे? मैं कॉन्फ़िगरेशन में '[रिमोट "मूल"]' अनुभाग में एक नई पंक्ति देखता हूं: 'push = HEAD'। और यह क्यों कह रहा था कि मास्टर की कई अपस्ट्रीम शाखाएं हैं? – firedev

+0

डिफ़ॉल्ट रूप से 'गिट पुश' रिमोट पर सभी शाखाओं को धक्का देता है, कॉन्फ़िगरेशन जोड़कर आप केवल उस शाखा को दबाए रखने के लिए गिट बताते हैं। शायद आपको जो त्रुटि संदेश मिल रहा है वह गलत है, मेरा मतलब है कि शाखा का नाम गलत है (मास्टर), शायद ऐसी अन्य शाखाएं हैं जो इस समस्या का कारण बनती हैं। यदि आपको गिट के पिछले संस्करण के साथ कभी भी यह समस्या नहीं थी, तो इसका मतलब यह हो सकता है कि एक रिग्रेशन समस्या है। –

+0

अभी भी महीनों बाद मुझे समझ में नहीं आता कि यह क्यों हो रहा है, हर अब और फिर कुछ रिपोजिटरी धक्का देने से इनकार करते हैं। – firedev

11

आप निर्दिष्ट करना आवश्यक है जो शाखा आप के लिए जोर दे रहे हैं। git push स्वचालित रूप से सभी refs और टैग कि स्थानीय शाखाओं ट्रैक कर रहे पुश करने के लिए प्रयास करेगी। यह संभव है कि सर्वर पर ऑनलाइन शाखाएं आगे बढ़ी हैं। इसलिए आप इस स्थिति के साथ समाप्त हो सकता है। आप बस

git push origin master 

और भी उपयोग परिवर्तन एक git pull कि सर्वर से एक के साथ अपने स्थानीय refs अद्यतन करेगा कर सामंजस्य करने के लिए करना चाहिए। एक मास्टर शाखा पर किसी भी तर्क के बिना धक्का अपने त्रुटि संदेश को जन्म दे सकता

git config remote.origin.push HEAD 

:

+0

लेकिन मैंने '-यू' कुंजी के साथ 'गीट पुश मूल मास्टर' भी किया था जिसे' मास्टर/शाखा 'के लिए अपस्ट्रीम के रूप में' मूल/मास्टर 'सेट करना चाहिए। इससे कोई फर्क नहीं पड़ता कि मैं इसे कैसे करता हूं, अगली बार जब यह 'गिट पुश' – firedev

+0

को फिर से गिट क्लोनिंग करने का प्रयास करता है या – redDragonzz

25

भागो git config -l और यदि आप branch.master * संदर्भों वाले कई पंक्तियों देखने के लिए लग रही है [शाखा "मास्टर"] अनुभाग ~/.gitconfig और .git/config. दोहराया जा सकता है ~/.gitconfig में एक हटाया जा रहा है मेरे लिए एकाधिक नदी के ऊपर शाखा का पता लगाने तय ।

+1

मेरे पास यह था: 'branch.master.remote = मूल branch.master.merge = refs/head/master' और वास्तव में' '/ .gitconfig' में 'शाखा" मास्टर था। इसे हटा दिया, देखेंगे कि यह कैसे चला जाता है, धन्यवाद! – firedev

+1

यह सुनिश्चित नहीं है कि यह कैसा हुआ, लेकिन मेरे पास 'branch.master.remote = origin' और' branch.master.merge = refs/head/master' दोनों _exactly_ को'git/config' में दो बार दोहराया गया था ... डुप्लिकेशंस को हटा रहा था इस मुद्दे को हल किया। – Lucas

+0

मैं स्थानीय रूप से नाम बदलने और नए नाम अपस्ट्रीम को धक्का देने के बाद मेरी शाखाओं में से एक पर एक जैसी समस्या के साथ समाप्त हुआ। मेरी .git/config फ़ाइल में दो प्रविष्टियां थीं। और लुकास ने सुझाव दिया कि डुप्लिकेट को हटाने से यह हल हो जाता है। –

1

ठीक है, ब्रांड के नए रेपोस साथ दो बार इस के साथ काम करने के बाद मैं एक जवाब है।

Git दूरस्थ -v

Git दूरस्थ rm

Git दूरस्थ rm मूल

(यदि आप किसी अन्य रिमोट जोड़ दिया है मूल के अलावा अन्य सब कुछ)! चेतावनी: एक से अधिक शाखा.मास्टर।दूरस्थ < - यह अच्छा

Git दूरस्थ जोड़ने मूल [email protected] है: yourname/yourrepo

पुल + धक्का = निर्धारित

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