2009-06-06 11 views
22

पर "गिट पुश" है, तो मेरे पास 2 शाखाओं: master और test के साथ github.com पर एक सार्वजनिक भंडार है।त्रुटि जब गिटब

मैं स्थानीय स्तर पर एक नया निर्देशिका बनाया है और आपने क्या किया:

[ ] git clone [email protected]:{username}/{projectname}.git 

तब मैं

[ ] git branch my_test 

साथ my_test नाम की एक नई शाखा बनाया है और वह करने लगे।

[ ] git checkout my_test 

तब मैं

[ ] git merge origin/test 

के साथ अपने सार्वजनिक भंडार के अपने test शाखा से यह विलय कर दिया है और यह एक में तेजी से आगे हो गया।

मैंने कुछ बदलाव किए और उन्हें प्रतिबद्ध किया। तब मैं

[ ] git push [email protected]:{username}/{projectname}.git test 

साथ GitHub पर सार्वजनिक test शाखा में स्थानीय my_test शाखा धक्का करने की कोशिश की, लेकिन मैं यह त्रुटि आई:

error: src refspec test does not match any. 
fatal: The remote end hung up unexpectedly 
error: failed to push some refs to '[email protected]:{username}/{projectname}.git 

क्या मैं गलत कर रहा हूँ?

+0

संभावित डिपलिकेट [src refspec मास्टर गिट में काम करने के दौरान किसी से मेल नहीं खाता] (http://stackoverflow.com/questions/4181861/src-refspec-master-does-not -मैच-किसी भी-जब-पुशिंग-कमिट-इन-गिट) –

+0

[संभावित भंडार पर पुश मूल मास्टर त्रुटि] का संभावित डुप्लिकेट (http://stackoverflow.com/q/827351/456814)। –

उत्तर

30

शायद कोशिश:

git push [email protected]:{username}/{projectname}.git HEAD:test 

कि कमांड लाइन पर पिछले पैरामीटर का प्रारूप एक refspec जो एक स्रोत रेफरी एक कॉलन और फिर गंतव्य रेफरी द्वारा पीछा किया है। आप हेड के बजाय अपने स्थानीय शाखा नाम (my_test) का भी उपयोग कर सकते हैं यह सुनिश्चित करने के लिए कि आप सही शाखा को दबा रहे हैं।

git push के लिए प्रलेखन इस पैरामीटर पर अधिक जानकारी है।

+0

Thats काम किया। धन्यवाद। – ebsbk

+0

यह एक आकर्षण की तरह काम किया :) –

+0

मुझे यह नहीं मिला। हेड का उपयोग करते समय यह क्यों काम करता है, लेकिन मेरी स्थानीय शाखा के नाम का उपयोग करते समय नहीं? –

17

इसके अलावा, आपको हर बार जब आप धक्का देना चाहते हैं तो पूरे यूआरएल को टाइप करने की आवश्यकता नहीं है। जब आप क्लोन चलाते हैं, तो गिट ने उस यूआरएल को 'मूल' के रूप में सहेजा, इसलिए आप 'मूल उत्पत्ति/परीक्षण' जैसे कुछ चला सकते हैं - इसका मतलब है कि आपके 'मूल' सर्वर पर 'टेस्ट' शाखा है। तो, सबसे आसान तरीका है कि इस मामले में अपने सर्वर पर पुश करने के लिए किया जाएगा:

git push origin my_test:test 

कि अपने 'मूल' सर्वर पर 'परीक्षण' शाखा के लिए अपने स्थानीय 'my_test' शाखा भेज दिए जाएंगे। आप अपने स्थानीय सर्वर पर शाखा के रूप में एक ही शाखा नाम दिया था, तो पेट आवश्यक नहीं है, तो आप बस कर सकते हैं:

git push origin test 
1

मैं यहाँ लगता है कि तुम शाखा ट्रैकिंग सेट अप करने की आवश्यकता होगी। ट्रैकिंग

git branch --track my_test origin/my_test 

git push -u origin my_test 
git pull origin my_test 
1

यह त्रुटि ऊपर आता है अगर आप पहले प्रतिबद्ध कुछ भी बिना एक नया भंडार करने के लिए पुश करने के लिए कोशिश परीक्षण करने के लिए सक्षम करने के लिए निम्नलिखित: चलाएं।आज़माएं:

git add -A 
git commit -am 'Initial commit' 

और फिर अपने धक्का को फिर से प्रयास करें।

0

आपको यह सुनिश्चित करने की ज़रूरत है कि आपके स्थानीय भंडार के पास आपके रिमोट रिपोजिटरी के समान नाम है जिसे आप धक्का देने की कोशिश कर रहे हैं।

सबसे पहले, गिट शाखा-एम "परीक्षण" का उपयोग करके भंडार बदलें ताकि "my_test" "test" होगा। दूसरा, बस गिट पुश मूल परीक्षण

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