Git में आने पर धक्का देने पर संदेश 'src refspec मास्टर किसी से मेल नहीं खाता'


2686

मैंने अपनी रिपॉजिटरी को क्लोन किया:

git clone ssh://xxxxx/xx.git 

लेकिन उसके बाद मैं कुछ फ़ाइलें और बदलने addऔर commitउन्हें, मैं उन्हें सर्वर से पुश करने के लिए करना चाहते हैं:

git add xxx.php
git commit -m "TEST"
git push origin master

लेकिन मुझे जो त्रुटि मिली वह है:

error: src refspec master does not match any.  
error: failed to push some refs to 'ssh://xxxxx.com/project.git'

26
@ मार्को यह कोई डुप्लिकेट नहीं है। यह एक स्थानीय शाखा को दूरस्थ शाखा में धकेलने का एक बहुत ही विशिष्ट मुद्दा है। यह एक रेपो को शुरू करने और इसे आगे बढ़ाने के बारे में है। वे एक ही त्रुटि उत्पन्न करते हैं, लेकिन REASONS वे उस त्रुटि का उत्पादन करते हैं और सुधार पूरी तरह से अलग होते हैं। इसके अलावा, चीनो, आपको एक उत्तर स्वीकार करना चाहिए। संभवत: पहला, यह देखकर कि यह सवाल का जवाब देता है और उसने 350 से अधिक लोगों की मदद की है।
tandrewnichols

क्या आपने अपनी मशीन पर विश्व स्तर पर गिट स्थापित करने और कॉन्फ़िगर करने के लिए अपने git config कमांड की स्थापना की थी?
इगोरगानापोलस्की

1
आशा है कि इस पोस्ट somebody- उपयोगी होगा samranga.blogspot.com/2015/07/... प्रश्न में त्रुटि पॉपअप किया जा सकता है यहां तक कि जब एक पहले से ही स्थानीय स्तर पर मौजूदा परियोजना से एक Git BitBucket भंडार बनाने की कोशिश की
Samitha Chathuranga

मुझे यह त्रुटि गलत शाखा नाम को धक्का देने की कोशिश में मिली। git statusउचित का उपयोग करने का संकल्प लिया ।
टॉम हावर्ड

5
फिर भी Git द्वारा एक और सरल कार्य को मुश्किल बना दिया गया। Git devs को अपने SDLC लूप में फीडबैक के रूप में स्टैक ओवरफ्लो का उपयोग करना चाहिए। 850,000+ लोगों को यह इंगित करना चाहिए कि Git के वर्कफ़्लो के साथ कुछ गंभीर रूप से गलत है। उन्हें एक यूएक्स विशेषज्ञ को नियुक्त करने की आवश्यकता है, क्योंकि वे स्पष्ट रूप से अपने दम पर इसे ठीक से पकड़ नहीं सकते हैं।
jww

जवाबों:


4135

शायद आपको सिर्फ प्रतिबद्ध करने की आवश्यकता है। जब मैंने किया तो मैं इसमें भाग गया:

mkdir repo && cd repo
git remote add origin /path/to/origin.git
git add .

ऊप्स! कभी प्रतिबद्ध नहीं!

git push -u origin master
error: src refspec master does not match any.

मुझे बस इतना करना था:

git commit -m "initial commit"
git push origin master

सफलता!


130
बस इस कदम का आँख बंद करके पालन न करें, @Vi ने जो उल्लेख किया है, उसे देखें और फिर सही करने के लिए अपने पुश कमांड को संशोधित करें।
कुमार

49
इस त्रुटि का सबसे संभावित कारण यह है कि सभी फाइलें अनट्रैक हैं और जोड़ी नहीं गई हैं। git add --allयदि आप सभी फ़ाइलों को जोड़ना चाहते हैं या आप चुनिंदा फ़ाइलों को जोड़ सकते हैं। तो फिर git commit -m "Initial comment", git push origin master। यह निश्चित रूप से काम करेगा।
भानु प्रताप सिंह

6
विभिन्न मुद्दे को ठीक करता है जो अच्छा है लेकिन वास्तव में इस वास्तविक प्रश्न का उत्तर नहीं है ।
माइकल डुरंट

7
git commit -m 'initial commit'डबल उद्धृत किया जाना चाहिए। ' git commit -m "initial commit", कम से कम खिड़कियों पर।
नृत्य 2

5
एक अन्य संभावित कारण: आपके पास वास्तव में एक शाखा नहीं है जिसे मास्टर
कार्लोस

841
  1. git show-refयह देखने की कोशिश करें कि आपके पास क्या है। वहाँ एक है refs/heads/master?

  2. आप git push origin HEAD:masterअधिक स्थानीय-संदर्भ-स्वतंत्र समाधान के रूप में प्रयास कर सकते हैं। यह स्पष्ट रूप से बताता है कि आप स्थानीय रेफरी HEADको दूरस्थ रेफरी में masterदेखना चाहते हैं ( गिट-पुश रिफस्पेक प्रलेखन देखें)।


6
मेरी मास्टर शाखा कमिट के शीर्ष पर नहीं थी! इसलिए मैंने एक शाखा बनाई जो सभी शाखाओं के अंत में थी और मैंने उन्हें सर्वर पर धकेल दिया:
sinoohe

10
git चेकआउट -b testbranch; git पुश ओरिजिन टेस्टब्रांच: मास्टर
सिनोहे

101
git show-refमेरी शाखा दिखाई; git push origin HEAD:<branch>मेरे लिए काम किया।
ग्लेन सोल्सबेरी

5
आपने अभी-अभी मुझे बचाया। के लिए धन्यवाद git push origin HEAD:master। लेकिन ऐसा कुछ git push --force origin masterकाम क्यों नहीं करता है?
14

4
@ gms8994 - आप सही हैं। अगर कोई मास्टर में धकेलने के बजाय पहली चीज के रूप में एक शाखा बनाता है, तो वही unfriendlyत्रुटि दिखाई देती है। यदि आप प्रारंभिक के बाद किसी भी git push origin <branch>mastergit checkout -b <branch>git remote add origin <url>
एफएसटी

225

मुझे अपने स्थानीय कंप्यूटर पर सभी फ़ाइलों को हटाने के बाद भी ऐसी ही त्रुटि हुई, और मुझे रिपॉजिटरी की सभी फ़ाइलों को साफ़ करना होगा।

मेरा त्रुटि संदेश कुछ इस तरह था:

error: src refspec master does not match any.
error: failed to push some refs to 'git@github ... .git'

और यह निम्नलिखित आदेशों को निष्पादित करके हल किया गया था:

touch README
git add README

git add (all other files)
git commit -m 'reinitialized files'
git push origin master --force  # <- caution, --force can delete others work.

10
अन्य उत्तर उस समस्या को हल नहीं करते हैं जो मुझे हो रही थी (उदाहरण के लिए, मैंने पहले ही प्रतिबद्ध था और अभी भी यह त्रुटि थी), लेकिन एक git push origin BRANCH --forceकाम कर रहा था । धन्यवाद!
लेम्मिंग्स 19

यह पहले वाला उत्तर देखें । मुझे संदेह है कि आपको एक फ़ाइल जोड़ने की आवश्यकता थी क्योंकि गिट खाली निर्देशिकाओं को ट्रैक नहीं करेगा।

3
धक्का - बल पूरी तरह से सह-श्रमिकों की कड़ी मेहनत को उड़ा सकता है। इसके द्वारा चेतावनी दी गयी।
माइकल डुरंट

3
इससे मेरी समस्या हल हो गई। मुझे लगता है कि git add ने इसे किया। पहली बार चीजों को धक्का देते समय चीजों को पहचानना नहीं है, इसलिए हो सकता है कि मुझे समस्या थी। git add कमांड ने मेरी समस्या हल कर दी। इसके बाद भी मैं --फोर्स के बिना पुश करने में सक्षम था। धन्यवाद आर्यो
आनंदराजा_श्रीनिवासन

203
  1. मेरे परिवर्तन पहले से ही प्रतिबद्ध थे
  2. फोर्स पुश ने फिर भी मुझे वही त्रुटि दी।

इसलिए मैंने वीआई के समाधान की कोशिश की :

git push origin HEAD:<remoteBranch> 

इसने मेरे लिए काम किया।


19
मुझे अंत में पता चला कि यह इसलिए था क्योंकि मैंने शाखा का नाम गलत लिखा था। मैंने सफलतापूर्वक शाखा A को B नाम वाली शाखा के साथ मूल रूप से धकेल दिया git push origin HEAD:B, लेकिन मुझे तब भी हर बार वही त्रुटि मिली जब मैं git push originशाखा A.
Yi H. के साथ

1
@ यिहुआंग, उघ धन्यवाद, मैंने पहले अपनी शाखा का नाम चेक किया, और फिर मैंने आपकी टिप्पणी के कारण इसे फिर से जांचा - एक ही मुद्दा था, इसे गलत कर दिया।
लकेसारे

1
@ YiH.i को यकीन था कि मेरी शाखा का नाम सही है लेकिन मैंने आपकी टिप्पणी और मेरे बुरे को पढ़ने के बाद इसे फिर से पढ़ा - एक ही मुद्दा है।
नल पॉइंटर

125
git push -u origin master
error: src refspec master does not match any.

इसके लिए आपको निम्न प्रकार से कमिट मैसेज डालना होगा और फिर कोड को पुश करना होगा:

git commit -m "initial commit"

git push origin master

सफलतापूर्वक मास्टर को धक्का दिया।


मैंने जाँच की यह काम कर रहा है। कृपया -u विकल्प को नजरअंदाज करें और फिर कोशिश करें
VIKAS KOHLI

यहाँ मुद्दा ओपी की तुलना में पूरी तरह से अलग है ... लेकिन ऐसा लगता है कि मेरे सहित कई लोगों के पास यह मुद्दा था।
ZX9

110

मेरे लिए मुझे यह सुनिश्चित करना था कि सर्वर पर सार्वजनिक कुंजी को ठीक से कॉन्फ़िगर किया गया है (~ / .shsh / अधिकृत_keys में संलग्न) और GitHub / Bitbucket में (GitHub या Bitbucket पर मेरी SSH कुंजियों में जोड़ा गया) - उन्हें मिलान करने की आवश्यकता है।

फिर:

git add --all :/

git commit -am 'message'

git push -u origin master

इसने मेरे लिए अंत में काम किया।


88

मैंने पाया कि यह केवल एक निर्देशिका में जुड़ने के बाद मुझे एक नए भंडार में हुआ।

जैसे ही मैंने एक फ़ाइल (जैसे एक README) को जोड़ा, Git पुश ने बहुत अच्छा काम किया।


6
यह शायद काम करता है क्योंकि गिट वास्तव में निर्देशिकाओं को ट्रैक नहीं करता है, केवल फाइलें। इसलिए यदि कोई निर्देशिका खाली है, तो वास्तव में इसे नहीं जोड़ा जाएगा।

1
ओपी ने एक फ़ाइल (xx.php) को जोड़ा, इसलिए इस मामले में यह समस्या नहीं थी, हालांकि अन्य मामलों में यह एक समस्या हो सकती है और एक फ़ाइल को उस समस्या का समाधान जोड़ सकती है।
माइकल डुरंट

1
एक निराशाजनक समस्या का इतना सरल समाधान। मैं रेपो के निर्माण और क्लोनिंग का परीक्षण कर रहा था और खाली निर्देशिकाओं को फाइल नहीं बनाया।
जेम्स विर्ज़बा

1
8 साल बाद इसने मुझे कुछ सिरदर्द से बचाया!
rvictordelta

मेरे मामले में, 1 -> git init 2 ---> git ऐड ओरिजिन .... आदि 3 ---> git git पुश -u ओरिजिन मास्टर ===> फिर मुझे उपरोक्त त्रुटि मिली। ===> फिर मैंने 2 कमांड का पालन किया, यह गायब है। ---> git add * ---> git प्रतिबद्ध -m "Some message" ---> git git push -u origin master ===> मेरे मामले में, मेरे लिए ठीक काम किया।
राव

67

चूक या लंघन git add .या git commitइस त्रुटि का कारण हो सकता है:

git push -u origin master
Username for 'https://github.com': yourusername
Password for 'https://yourusername@github.com': 
error: src refspec master does not match any.
error: failed to push some refs to 'https://github.com/yourusername/foobar.git'

इसे ठीक करने के लिए, उचित अनुक्रम को पुन: व्यवस्थित करें और उसका पालन करें:

git init
git add .
git commit -m 'message'
git *create remote
git push -u origin master

यह सही है, व्यापार का अंत विशेष रूप से अधिक है git remote add __REMOTE_NAME__ __URL_OR_SSH__, और दूरस्थ नाम के ऊपर "मूल" है
17१४ u१४ @ १२:३२

1
उन्होंने अपने प्रश्न में जोड़ा और प्रतिबद्ध थे, क्योंकि यह मुद्दा नहीं था, हालांकि यह अन्य लोगों की मदद करता है।
माइकल डुरंट

हालाँकि इस -uविकल्प के कारण इसका उपयोग किया गया था।
माइकल डुरंट

63

इसे ठीक करने के लिए, पुनः आरंभ करें और उचित कोड अनुक्रम का पालन करें:

git init
git add .
git commit -m 'message'
git push -u origin master

55

सुनिश्चित करें कि आपने पहले जोड़ा है, और फिर प्रतिबद्ध / पुश करें:

पसंद:

git init
git add .
git commit -m "message"
git remote add origin "github.com/your_repo.git"
git push -u origin master

43

ऐसा तब भी होता है जब आप एक विशिष्ट शाखा में होते हैं और किसी अन्य शाखा को धक्का देने की कोशिश करते हैं जो अभी तक मौजूद नहीं है, जैसे:

$ git branch
* version-x  # you are in this branch
  version-y

$ git push -u origin master
error: src refspec master does not match any.
error: failed to push some refs to 'origin_address'

3
जबरदस्त हंसी। मैं मूल गुरु को धक्का देने की कोशिश कर रहा था लेकिन वह शाखा मौजूद नहीं थी। इसे उत्पत्ति स्थिर कहा जाता था।
पेनर

1
-uहो सकता है यहां मदद की हो।
माइकल डुरंट

1
उपरोक्त मामले में, समस्या यह है कि कोई स्थानीय शाखा नहीं है master, इसलिए आप इसे धक्का नहीं दे सकते। आप या तो एक मौजूदा शाखा को आगे बढ़ाना चाहते हैं - या मास्टर शाखा बना सकते हैं और फिर इसे आगे बढ़ा सकते हैं, जैसे:git checkout -b master; git push -u origin master;
tanius

4
मुझे बस यह मिला जब मैंने शाखा का नाम याद किया।
सेबेस्टियन ery sureryd

2
मेरी स्थानीय शाखा में " h h eduler" लिखा गया था और मैं कर रहा था git push origin scheduler। हा! एक अक्षर बंद आपको प्रोग्रामिंग में मार देगा। lol
प्रोटोएवेंजेलियन

43

मैंने उसी समस्या का सामना किया, और मैंने इसका इस्तेमाल किया --allow-empty:

$ git commit -m "initial commit" --allow-empty
...
$ git push
...

परिशिष्ट

इस समस्या का एक मुख्य कारण यह है कि कुछ बिट सर्वर, जैसे कि BitBucket, की अपनी masterशाखा आरंभीकृत नहीं होती है जब एक ताजा भंडार क्लोन किया जाता है।


35

मेरे लिए, निम्न फ़ाइलों को स्थानांतरित करने के लिए निम्न कार्य किया गया है:

git add --all

अगला, मैंने इसी तरह के कदमों का पालन किया

 git commit -m "First commit"

फिर,

git remote add origin git@github.....

अंतिम लेकिन कम नहीं:

git push -u origin master

जैसा कि आप ऐसा करते हैं, विंडोज सुरक्षा आपके उपयोगकर्ता नाम और पासवर्ड के लिए पूछ रही है।


1
क्या आपका मतलब था 'गट एड - आल' दो डैश के साथ
अब्दुल्ला

29

मेरे मामले में, मैं .gitignoreफ़ाइल को शामिल करना भूल गया । यहाँ सभी आवश्यक कदम हैं:

  1. रिमोट पर एक खाली गिट रिपॉजिटरी बनाएं,
  2. स्थानीय पर अपने प्रोजेक्ट के लिए .gitignore फ़ाइल बनाएँ। GitHub आपको यहां उदाहरणों की एक सूची देता है
  3. एक टर्मिनल लॉन्च करें, और आपकी परियोजना में निम्नलिखित कमांड करें:

    git remote add origin YOUR/ORIGIN.git
    
    git add .
    
    git commit -m "initial commit or whatever message for first commit"
    
    git push -u origin master
    

यह .gitignore से संबंधित प्रश्न में त्रुटि कैसे है ?! यदि यह संबंधित है (जो मुझे अत्यधिक संदेह है) तो आपको इसे अपने उत्तर में समझाना चाहिए। धन्यवाद
pedram Bashiri

26

बस एक प्रारंभिक प्रतिबद्ध जोड़ें। इन कदमों का अनुसरण करें:

  • git add .

  • git commit -m "initial commit"

  • git push origin master

इसने मेरे लिए काम किया।


24

मेरा मुद्दा यह था कि 'मास्टर' शाखा अभी तक स्थानीय स्तर पर नहीं बनाई गई थी।

एक तेज़

git checkout -b "master"

मास्टर शाखा, किस बिंदु पर, एक त्वरित

git push -u origin master

Git रिपॉजिटरी तक काम को आगे बढ़ाया।


22

आप शायद "git add" कमांड भूल गए। "गिट इनिट" कमांड के बाद।


प्लस git commitऑफ ...
बिल

19

इसका मतलब यह है कि आप प्रारंभिक प्रतिबद्धता करना भूल गए, कोशिश करें

git add .
git commit -m 'initial commit'
git push origin master

कृपया कमिट-मी "प्रारंभिक कमेटी" लिखें
यश अग्रवाल

19
  1. प्रथम, git add .
  2. दूसरा, git commit -m "message"
  3. तीसरा, git push origin branch

कृपया वर्तनी की गलतियों की जाँच करें क्योंकि इससे वह त्रुटि भी हो सकती है।


19

मैंने नीचे दिए गए अनुसार GitHub के निर्देशों का पालन किया, लेकिन मुझे अभी भी ओपी द्वारा उल्लिखित इस त्रुटि का सामना करना पड़ा:

git init
git add .
git commit -m "message"
git remote add origin "github.com/your_repo.git"
git push -u origin master

मेरे लिए, और मुझे आशा है कि यह कुछ मदद करता है, मैं (1.58 GB on disk)अपने मैकओएस पर एक बड़ी फाइल को आगे बढ़ा रहा था । ऊपर दी गई कोड की सुझाई गई रेखा को कॉपी करते हुए, मैं वास्तव में इस add .प्रक्रिया को पूरा करने के लिए अपने प्रोसेसर की प्रतीक्षा नहीं कर रहा था । इसलिए जब मैंने git commit -m "message"इसे टाइप किया, तो यह मूल रूप से किसी भी फाइल को संदर्भित नहीं करता था और उसने अपने कोड को सफलतापूर्वक GitHub में करने के लिए जो भी करने की आवश्यकता है उसे पूरा नहीं किया है।

इसका प्रमाण तब है जब मैंने टाइप किया git status आमतौर पर जोड़ी गई फ़ाइलों के लिए हरे रंग के फोंट मिलते हैं। लेकिन सब कुछ लाल था। मानो उसे बिलकुल नहीं जोड़ा गया।

इसलिए मैंने चरणों को भुनाया। मैंने टाइप किया git add .और फाइलें खत्म होने का इंतजार किया। फिर मैंने अगले चरणों का पालन किया।


18

जब मुझे चलाने में चूक हुई तो मुझे भी यही समस्या थी:

git add .

(आपके पास कम से कम एक फ़ाइल होनी चाहिए, या फिर आपको त्रुटि मिलेगी।)


18

ऐसा होता है अगर आप पहली बार पुश करने से पहले प्रतिबद्ध करना भूल जाते हैं। बस दौडो:

git commit -m "first commit"

17

वर्तमान स्थिति की जांच करने के लिए, git status

और इन चरणों का पालन करें:

git init
git add .
git commit -m "message"
git remote add origin "github.com/your_repo.git"
git push -u origin master

16

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


14

मुझे भी यही समस्या थी। मैंने इसे निम्न चरणों द्वारा किया है:

1. git commit -m 'message'
2. git config --global user.email "your mail"
3. git config --global user.name "name"
4. git commit -m 'message'
5. git push -u origin master

14

यदि आपको यह त्रुटि अलग हेड मोड में काम करते समय मिलती है, तो आप यह कर सकते हैं:

git push origin HEAD:remote-branch-name

यह भी देखें: एक अलग सिर से गिट धक्का बनाना

यदि आप दूरस्थ शाखा से भिन्न स्थानीय शाखा पर हैं, तो आप यह कर सकते हैं:

git push origin local-branch-name:remote-branch-name

13

इस परिदृश्य में जहां आप बाहरी भंडार (GitHub) से कोड की जांच करते हैं, और इसे व्यक्तिगत / आंतरिक प्रणाली में आयात करना चाहते हैं, यह आदेश वास्तव में चमकता है:

git push --all origin

यह सभी स्थानीय शाखाओं को रिमोट की ओर धकेलता है, बिना रिफल्स की जाँच किए और बिना कमिट किए।


12

यदि आप जिस शाखा के नाम को पुश करने का प्रयास कर रहे हैं उसमें आपका टाइपो है तो यह भी होगा।


2
मुझे हम में से कई लोगों पर संदेह है जो वेब खोज के माध्यम से यहां आए थे, उन्होंने वास्तव में नाम गलत समझा!
ऋषि

12
git add .

आपको जो चाहिए वह यह है। यह कोड आपकी निर्देशिका में सभी अनट्रैक की गई फ़ाइलों को ट्रैक करता है।


10

मामले में अगर आप git initअपनी प्रारंभिक प्रतिबद्धताओं को करने और आगे बढ़ाने के बाद भी इस समस्या का सामना कर रहे हैं । फिर आप निम्नलिखित प्रयास कर सकते हैं,

git checkout -b "new branch name"
git push origin "new branch name"

आपका कोड एक नई शाखा के रूप में धकेल दिया जाएगा।

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