2012-12-27 11 views
5

मैं बोतल भंडार काँटेदार और तरहGit धक्का देता त्रुटि "src refspec मास्टर किसी भी मेल नहीं खाती"

git clone --recursive https://github.com/lovesh/flask.git -b website 

GitHub से अपनी वेबसाइट शाखा क्लोन तो मैं

git remote add upstream https://github.com/lovesh/flask.git -t website 
git fetch upstream 
जैसे दूरस्थ कॉन्फ़िगर किया गया

फिर मैंने परिवर्तन किए (मैंने कोई अतिरिक्त फाइल नहीं बनाई लेकिन 2 फाइलों को संशोधित किया) मुझे फाइलों को जोड़ना पड़ा और इस तरह के बदलावों को

git add . 
git commit . 

इसने मुझे प्रतिबद्धता के लिए एक टिप्पणी के लिए प्रेरित किया और मैंने टिप्पणी दर्ज की। अब यह मेरे

2 files changed, 69 insertions(+), 7 deletions(-) 

से पता चला है लेकिन जब मैं अपने GitHub खाते में इन परिवर्तनों को पुश करने के लिए कोशिश

git push origin master 

यह त्रुटि

error: src refspec master does not match any. 
error: failed to push some refs to 'https://github.com/lovesh/flask.git' 

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

git status 

पुष्टि करने के लिए और यह

# On branch website 
# Your branch is ahead of 'origin/website' by 1 commit. 
# 
nothing to commit (working directory clean) 

से पता चला है इसके अलावा git log भी मेरी लॉग में प्रतिबद्ध दर्शाता है। मैं गिट करने के लिए नया हूँ। क्या मैं कुछ भूल रहा हूँ?

उत्तर

1

सबसे पहले, आपके रेपो को क्लोन करने के बाद आपके पास मास्टर शाखा नहीं है।
git clone विवरण:

--branch <name> 
-b <name> 

इसके बजाय बजाय नव निर्मित HEAD करने के लिए शाखा बताया इशारा करते हुए क्लोन भंडार के HEAD, बात करने के लिए <name> शाखा द्वारा की।
गैर-नंगे भंडार में, यह वह शाखा है जिसे चेक आउट किया जाएगा।
--branch परिणामी भंडार में उस प्रतिबद्धता पर टैग भी ले सकता है और HEAD को अलग कर सकता है।

git push -u origin website 

(उसके बाद, एक सरल git push पर्याप्त होगी: के बारे में अधिक

अपने मामले में

तो, आप बना सकते हैं और मूल करने के लिए स्थानीय वेबसाइट शाखा को ट्रैक करना चाहते हैं, तो आप की जरूरत है

: " git - push current vs. push upstream (tracking)")


आपका अन्य दूरदराज के 'upstream' भी केवल ट्रैक करेगा upstream/website शाखा में धक्का नीतियों

git remote प्रलेखन उल्लेख करता है: दूरस्थ refs/remotes/<name>/ namespace के तहत सभी शाखाओं को ट्रैक करने के लिए डिफ़ॉल्ट ग्लोब refspec के बजाय,

-t <branch> विकल्प के साथ

, एक refspec ट्रैक करने के लिए केवल <branch> बनाई गई है।
आप सभी शाखाओं को हथियाने के बिना एकाधिक शाखाओं को ट्रैक करने के लिए एक से अधिक -t <branch> दे सकते हैं।

आपके मामले में, आप केवल default refspec (+refs/heads/*:refs/remotes/upstream/*) के बजाय ट्रैक कर रहे upstream/website (+refs/heads/website:refs/remotes/upstream/website)।

1

git push origin website आज़माएं इस नाम के तहत आप अपनी मास्टर शाखा को कॉन्फ़िगर कर सकते हैं। कोशिश करो और मुझे बताओ।

+0

धन्यवाद। इसने काम कर दिया। लेकिन क्या आप समझा सकते हैं कि मैंने इस नाम के तहत अपनी मास्टर शाखा को कैसे कॉन्फ़िगर किया? या यह है कि 'गिट पुश उत्पत्ति' के साथ मुझे उस शाखा के नाम का जिक्र करना है जिसे मैं धक्का दे रहा हूं? – lovesh

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