घातक: वर्तमान शाखा मास्टर की कोई अपस्ट्रीम शाखा नहीं है


227

मैं अपनी एक परियोजना को गितुब में धकेलने की कोशिश कर रहा हूं, और मुझे यह त्रुटि मिलती रहती है:

peeplesoft@jane3:~/846156 (master) $ git push

fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

     git push --set-upstream origin master

इसलिए मैंने इसे आजमाया और यह मिला:

peeplesoft@jane3:~/846156 (master) $ git push --set-upstream origin master

fatal: Authentication failed

एक और स्टैकओवरफ़्लो थ्रेड ने सुझाव दिया कि मैं निराशाजनक परिणामों के साथ, निम्नलिखित प्रयास करता हूं।

peeplesoft@jane3:~/846156 (master) $ git push -u origin master

fatal: Authentication failed

फिर मैंने यह कोशिश की:

peeplesoft@jane3:~/846156 (master) $ git config remote.origin.push HEAD

peeplesoft@jane3:~/846156 (master) $ git push

fatal: Authentication failed

कोई संकेत?


1
इससे पहले कि आप इसे आगे बढ़ा सकें , रेपो जीथुब में मौजूद होना चाहिए । क्या यह? और रेपो क्या आप इसके क्लोन के साथ काम कर रहे हैं?
मैट

मैंने गितुब से रेपो का क्लोन तैयार किया और फिर एक रीडमी फ़ाइल में 1 लाइन जोड़ी और फिर उसे पीछे धकेलने की कोशिश की।
user1524361

1
मुझे वही त्रुटि मिल रही थी क्योंकि मैं फ़ाइलों को कम करना भूल गया था
मेटेन

3
-u और
परेशान

सभी को यह बताने gitकी इच्छा थी कि पोस्ट की गई ओपी ने मेरी मदद की, यहां तक ​​कि जवाब से भी ज्यादा
नातान

जवाबों:


94

आपने पुश को निर्धारित किया, लेकिन, उस पुश मुद्दे से स्वतंत्र रूप से (जो मैंने समझाया " मुझे एक नई शाखा को स्पष्ट रूप से पुश करने की आवश्यकता क्यों है? ": git push -u origin masterया git push -u origin --all), आपको प्रमाणीकरण समस्या को हल करने के लिए अभी आवश्यकता है।

यह आपके url (ssh as in git@github.com/yourRepo, or https as https://github.com/You/YourRepo) पर निर्भर करता है

Https url के लिए:

यदि आपका खाता द्वि-कारक प्रमाणीकरण द्वारा सुरक्षित है , तो आपका नियमित पासवर्ड (https url के लिए) काम नहीं करेगा, जैसा कि यहाँ या यहाँ बताया गया है

समान समस्या यदि आपके पासवर्ड में विशेष वर्ण है (जैसा कि इस उत्तर में है )

यदि https काम नहीं करता है (क्योंकि आप एक द्वितीयक कुंजी, एक PAT: व्यक्तिगत एक्सेस टोकन) उत्पन्न नहीं करना चाहते हैं, तो आप ssh पर स्विच कर सकते हैं, जैसा कि मैंने यहां दिखाया है


जैसा कि टिप्पणी में क्वर्टी ने नोट किया है , आप स्वतः ही रिमोट पर उसी नाम की शाखा बना सकते हैं:

git push -u origin head 

क्यों?

  • HEAD (अपने को देखने के .git\HEADफ़ाइल) अभी चेक आउट शाखा के refspec है (उदाहरण के लिए: ref: refs/heads/master)
  • डिफ़ॉल्ट धक्का नीति है सरल

चूँकि इस पुश के लिए इस्तेमाल किया गया रिफेक सिर है: (कोई गंतव्य नहीं है), एक लापता का :<dst>मतलब उसी रेफरी को अपडेट करना है <src>जो (हेड, जो एक शाखा है)।

हालांकि काम नहीं करेगा अगर HEAD को अलग कर दिया जाए


1
भयानक, यह वही है जो हमें मूल कारण के मुद्दे को ठीक करने के लिए चाहिए, न कि इसे केवल सतह पर ठीक करने के लिए
वर्कप्लेलिफ़ाइकल

यदि आप किसी भी शाखा में हैं, तो यह उपयोगी है git push origin head -u। रिमोट पर समान नाम की शाखा को स्वचालित रूप से बनाता है।
क्वर्टी

1
@ क्वर्टी धन्यवाद, अच्छी बात है। अधिक दृश्यता के उत्तर में मैंने आपकी टिप्पणी (अतिरिक्त विवरण के साथ) शामिल की है।
VonC

115

इसके अलावा आप निम्नलिखित कमांड का उपयोग कर सकते हैं:

git push -u origin master

यह आपके दूरस्थ रेपो में (-u) एक और शाखा बनाता है। एक बार ssh का उपयोग करके प्रमाणीकरण किया जाता है।


2
यह समस्या के लिए वास्तव में प्रासंगिक है, क्योंकि समस्या प्रमाणीकरण के साथ है। उन्होंने यह भी कहा कि उन्होंने पहले ही अपने पोस्ट में कोशिश की है।
माइक प्रीसिफ़

2
मैंने 2 कारणों से अपमानित किया। पहली बार: ओपी ने कहा कि उसने पहले ही यह कोशिश कर ली है। दूसरा एक: -uविकल्प उस विकल्प के लिए शॉर्टकट है --set-upstreamजिसका नई शाखा के निर्माण से कोई लेना-देना नहीं है। या विकल्प के दस्तावेज़ीकरण से-u--set-upstream : "हर उस शाखा के लिए जो अद्यतित है या सफलतापूर्वक धकेल दी गई है, अपस्ट्रीम (ट्रैकिंग) संदर्भ जोड़ें, जिसका उपयोग तर्क-कम गिट-पुल [1] और अन्य कमांड द्वारा किया जाता है।" वास्तव में मुझे यह नहीं सूझा कि यह उत्तर कितना उलझा हुआ है क्योंकि यह भ्रामक है।
लूसिफ़िशर

38

जब आप --allपहली बार पुश करते समय पैरामीटर भूल जाते हैं, तो जाहिर तौर पर आपको यह त्रुटि संदेश भी मिलता है । मैंने लिखा

git push -u origin

जिसने यह त्रुटि दी, उसे होना चाहिए था

git push -u origin --all

ओह, मुझे इन कॉपी-पेस्ट त्रुटियों से कैसे प्यार है ...


3
धन्यवाद। मुझे विजुअल स्टूडियो कोड में यह त्रुटि मिल रही थी और यह काम कर रहा था, लेकिन कई डेवलपर्स के संदर्भ में कोई यह बता सकता है कि इसने क्या किया?
नरक


13

कृपया इस परिदृश्य को आज़माएँ

git push -f --set-upstream origin master

7
आपको इस बात पर और स्पष्टीकरण देना चाहिए कि यह कैसे और क्यों काम करता है।
बेनोइट लेटिनियर

6
"बुरा नहीं है" किसी भी चीज़ के लिए वास्तव में बुरा स्पष्टीकरण है। "बुरा नहीं" आपका जवाब वास्तव में बुरा बनाता है।
घोस्टकट

यह ओपी द्वारा उल्लिखित त्रुटि को संबोधित करने के लिए कुछ भी नहीं करता है: "प्रमाणीकरण विफल"
बीन

हाँ। इसने मेरे लिए काम किया। मुझे लगता है कि यह अपस्ट्रीम (रिमोट) शाखा के लिए प्रतिबद्ध है।
vkg

12

यदि आप उस क्रिया को परिभाषित करते हैं, जो git pushइसे लेना चाहिए यदि कमांड लाइन पर कोई रिफस्पेक नहीं दिया गया है, तो रिमोट में कोई भी रिफस्पेक्ट कॉन्फ़िगर नहीं किया गया है, और कमांड लाइन पर दिए गए विकल्पों में से कोई भी रीस्पेक निहित नहीं है।

बस कर दो:

git config --global push.default current

फिर

git push

1
आपको यह जानने की आवश्यकता है कि यह आपकी वैश्विक गिट सेटिंग्स में बदलाव करता है, जिसके कुछ प्रतिकूल प्रभाव हो सकते हैं। लेकिन यह वही था जिसकी मुझे तलाश थी।
मावामार्टन

@Mavamaarten संभावित प्रतिकूल प्रभाव क्या हैं?
कोसी मरा

7

खैर, अपलोड करते समय मुझे वही परेशानी हो रही थी और मैंने इसे हल करके वही काम किया जो यह करने के लिए कहता है: पहले मैं टर्मिनल के माध्यम से अपनी रिपॉजिटरी में लिनक्स के माध्यम से पुश करने की कोशिश कर रहा था जैसे कि https

git push https://github.com/SiddharthChoudhary/ClientServerCloudComputing.git

लेकिन कोई परिणाम नहीं मिल रहा था और इसलिए मैं गहराई से नीचे गया और कोशिश की:

git push --set-upstream https://github.com/SiddharthChoudhary/ClientServerCloudComputing.git master

और इसने काम किया। इस प्रकार फिर आपको उपयोगकर्ता नाम और पासवर्ड के साथ संकेत मिल जाएगा। मैंने एक टोकन भी बनाया है और पासवर्ड के बजाय मैंने टोकन चिपकाया है और इस प्रकार, सफलतापूर्वक किया जा रहा है।

  1. टोकन जेनरेट करने के लिए अपने Github खाते में और डेवलपर सेटिंग में जाएं और फिर दूसरा टोकन बनाएं।
  2. ऐसा करने के बाद, उस टोकन को कॉपी करें और जब यह पूछा जाए तो पासवर्ड प्रॉम्प्ट में पेस्ट करें।

6

बहुत सरल पक्ष पर, एक बार जब आपकी अन्य शाखाएँ होती हैं, तो आप केवल एक शाखा को आगे बढ़ाने के लिए उपयोग नहीं कर सकते हैं

git push

लेकिन आपको शाखा को अब निर्दिष्ट करने की आवश्यकता है, भले ही आपके पास उस शाखा को चेकआउट करना हो जिसे आप पुश करना चाहते हैं, इसलिए

git push origin <feature_branch>

जहां masterशाखा भी हो सकती है


5

मैंने भूलने की सरल त्रुटि की:

git commit -m "first commit"

फिर git push origin masterकाम किया।


4

मुझे भी यही समस्या थी

यहां छवि विवरण दर्ज करें

मैंने इसे हल किया जो कमांड के नीचे इस्तेमाल किया गया था

$ git branch --set-upstream develop origin/develop

और यह .git फ़ोल्डर में कॉन्फ़िगरेशन फ़ाइल में एक कॉन्फ़िगरेशन जोड़ देगा।

यहां छवि विवरण दर्ज करें


3

सबसे पहले उपयोग git pull origin your_branch_name तबuse git push origin your_branch_name


क्षमा करें यदि यह मूर्खतापूर्ण लगता है। मेरी शाखा का नाम कैसे पता चलेगा। मेरा रेपो AWS में है।
प्रवीणराज वेंकटचलम

"गिट शाखा" का उपयोग करें
डेरियस मिलियास्कस

3

इसके लिए एक सरल उपाय है जो मेरे लिए macOS Sierra पर काम करता है। मैंने ये दो आदेश दिए:

git pull --rebase git_url(Ex: https://github.com/username/reponame.git)
git push origin master

यदि यह किसी भी भविष्य के धक्का के बाद अपस्ट्रीम के बारे में कोई घातक त्रुटि दिखाता है तो बस चलाएं:

git push --set-upstream origin master

0

1. एक कंप्यूटर और आपके जीथूब संबंधित। SSH का उपयोग करें। कंप्यूटर कोड इसलिए आपको यहां सत्यापित छवि विवरण प्रस्तुत करने की आवश्यकता नहीं है

2. गिट खाली फ़ोल्डर का प्रबंधन नहीं कर सकता। तो आपको एक फ़ाइल में सहेजे गए इस तरह के readme.md को लिखना होगा। अन्यथा आपको फ़ाइल नहीं मिलेगी।

3. आपकी स्थानीय परियोजना कुछ भी नहीं है नई परियोजनाएं आगे बढ़ती हैं। कृप्या

git init

git remote add origin +"githublink"

git add .

git commit -m "" फिर से जाएं।

4. फिर git pull origin master(कुंजी)

5. अंत में git push origin master(सभी समस्या को हल करें)।

http://my.oschina.net/psuyun/blog/123005参考链接


0

यदि आप अपने कोड को सीधे मास्टर ब्रांच पर भेजने की कोशिश कर रहे हैं तो कमांड का उपयोग करें

git push origin master

इससे मुझे मदद मिलती है।


0

मुझे भी वही त्रुटि मिली। मुझे लगता है कि ऐसा इसलिए था क्योंकि मैंने इसे क्लोन किया था और पीछे धकेलने की कोशिश की थी। $ git पुश -u ओरिजिनल मास्टर यह सही कमांड है

गिनती की वस्तुओं: 8, किया। 2 थ्रेड्स का उपयोग करते हुए डेल्टा संपीड़न। संपीड़ित वस्तुएं: 100% (4/4), किया। लेखन वस्तुएं: 100% (8/8), 691 बाइट्स | 46.00 कीबी / एस, किया। कुल 8 (डेल्टा 1), पुन: उपयोग किया गया 0 (डेल्टा 0) दूरस्थ: समाधान डेल्टा: 100% (1/1), किया गया।

  • [नई शाखा] मास्टर -> मूल से दूरस्थ शाखा मास्टर को ट्रैक करने के लिए मास्टर शाखा मास्टर की स्थापना की।

    It was successful. Try to create new u branch 
    

0

मेरे पास एक ही समस्या थी, इसका कारण यह था कि मैं शाखा निर्दिष्ट करना भूल गया था

git push myorigin feature/23082018_my-feature_eb

0

मेरे लिए, मैं एक निजी रेपो में बदलावों पर जोर दे रहा था जिसमें मुझे लिखने की पहुंच नहीं थी। सुनिश्चित करें कि आपके पास पुश या पुल संचालन करते समय मान्य एक्सेस अधिकार हैं।

आप सीधे सत्यापन कर सकते हैं


1
"के माध्यम से सीधे सत्यापित करें" क्या?
माइक पूले

0

मेरे लिए, यह इसलिए था क्योंकि मैंने छिपे हुए .git को हटा दिया था फ़ोल्डर ।

मैंने फ़ोल्डर को हटाकर, फिर से क्लोनिंग, और परिवर्तनों को फिर से बनाकर इसे ठीक किया।


0

यदि आप किसी भी शाखा में हैं, तो आप इसका उपयोग कर सकते हैं:

git push origin head -u

यह स्वचालित रूप से रिमोट पर एक ही नाम की नई शाखा बनाएगा।


-1

इस समस्या को हल करने के लिए, gitस्वयं से कोड की जांच करते समय , यू को नीचे दिए गए आदेश की तरह देने की आवश्यकता है:

git checkout -b branchname origin/branchname

यहां, डिफ़ॉल्ट रूप से हम सेटिंग कर रहे हैं the upstream branch, इसलिए आप उल्लिखित मुद्दे का सामना नहीं करेंगे।


-2

मेरे लिए समस्या मेरी शाखा के नाम से आती है: "# नाम-की-मेरी-शाखा", बिना "#" के ठीक है!

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