Gitub में Git-push मास्टर करने में असमर्थ - 'मूल' एक git रिपॉजिटरी / अनुमति नहीं प्रतीत होता है


84

यह सवाल रिबेस, ब्रांच और मर्ज समझने में मेरी समस्या और समस्या से संबंधित है

आप अपने दूरस्थ सूची में एक टीममेट के रूप में अपने जीथूब खाते के लिए कैसे प्रतिबद्ध हो सकते हैं?

मुझे पता चला कि अन्य लोगों की भी यही समस्या है। समस्या /etc/xinet.d/ से संबंधित प्रतीत होती है।

समस्या: जीथुब में मेरी स्थानीय शाखा को मेरी स्थानीय शाखा को आगे बढ़ाने में असमर्थ

मै भागा

git push origin master

मुझे मिला

fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

त्रुटि संदेश मुझे बताता है कि शाखा 'मूल' मेरे स्थानीय गिट रिपॉजिटरी में नहीं है। इस तरह, गिट गिटुब से जुड़ना बंद कर देता है।

यह अजीब है, क्योंकि मैंने शाखा 'मूल' को नहीं हटाया है।

मेरा गित वृक्ष है

  dev
* master
  ticgit
  remotes/Math/Math
  remotes/Math/master
  remotes/origin/master
  remotes/Masi/master

आप अपनी स्थानीय शाखा को गितुब में कैसे धकेल सकते हैं , जबकि आपके पास अपने स्थानीय गिट में एक टीममेट की शाखा है?


VonC का उत्तर मुख्य समस्या को हल करता है। मैंने अपनी ssh कीज़ के लिए एक पासफ़ार्स रखा।

मै भागा

$git push github master     

मुझे मिला

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

ऐसा लगता है कि मुझे किसी तरह गिट के लिए पासफ़्रेज़ देने की ज़रूरत है।

आप Ssh कुंजी पर भरोसा करने के बजाय गितुब को अपना पासफ़्रेज़ कैसे पूछ सकते हैं?


बस मेरे जवाब को अपडेट किया। Ssh पैरामीटर सभी नहीं हैं। user.name और github.user भी महत्वपूर्ण हैं
VonC

मेरे जवाब को फिर से अपडेट किया, कुछ और ssh विन्यास जांच के साथ
VonC

"अनुमति से इनकार (publickey)।" वास्तव में इसका मतलब है कि आपने अपने पब्लिके का उपयोग करके लॉगिन करने की कोशिश की, और अनुमति देने से इनकार कर दिया गया, बजाय इसके कि आप अपने पब्लिके तक पहुंच की अनुमति न दें।
Xiong Chiamiov

मेरी समस्या एक अलग प्रणाली से अलग ssh कुंजी थी। मैंने दूसरी कुंजी अपलोड की और सब ठीक था। मैंने इसे ssh -v git@github.com ट्रिक के साथ खोजा।
14

जवाबों:


96

क्या करता है

$ git config --get-regexp '^(remote|branch)\.'

रिटर्न (आपके गिट रिपॉजिटरी के भीतर निष्पादित)?

मूल एक दूरस्थ गिट रिपॉजिटरी के संदर्भ के लिए सिर्फ एक डिफ़ॉल्ट नामकरण सम्मेलन है।

यदि यह GitHub का संदर्भ नहीं देता है (बल्कि आपकी टीम के रिपॉजिटरी के लिए एक पथ, पथ जो अब वैध या उपलब्ध नहीं हो सकता है), तो बस एक और मूल जोड़ें, जैसे इस Bloggitation प्रविष्टि में

$ git remote add origin2 git@github.com:myLogin/myProject.git
$ git push origin2 master

(मैं वास्तव में 'उत्पत्ति' या 'मूल 2' के बजाय 'गितुब' नाम का उपयोग करूंगा)


अनुमति से इनकार (publickey)।
घातक: दूरस्थ अंत अप्रत्याशित रूप से लटका हुआ है

जाँच करें कि क्या आपकी गिटहब पहचान सही ढंग से आपके स्थानीय गिट रिपॉजिटरी में घोषित की गई है, जैसा कि गिटहब हेल्प गाइड में उल्लिखित है । (दोनों user.name और github.name - और github.token)

तब, स्टॉनियन ब्लॉग से पता चलता है (जैसा कि मारसियो गार्सिया करता है ):

$ cd ~/.ssh
$ ssh-add id_rsa

अरल बाल्कन कहते हैं: एक विन्यास फाइल बनाएं

इसका समाधान इस पृष्ठ के OS X अनुभाग के नीचे ~ / .ssh / के रूप में एक विन्यास फाइल बनाना था ।

पृष्ठ पर दिए गए निर्देशों के अनुसार, मैंने जो फ़ाइल जोड़ी है, और मेरे पुश फिर से काम करने लगे हैं:

Host github.com
User git
Port 22
Hostname github.com
IdentityFile ~/.ssh/id_rsa
TCPKeepAlive yes
IdentitiesOnly yes

का परिणाम भी पोस्ट कर सकते हैं

ssh -v git@github.com

अधिक जानकारी के लिए क्यों GitHub ssh कनेक्शन आपको अस्वीकार करता है।

यह भी जांचें कि आपने अपनी सार्वजनिक कुंजी सही दर्ज की है (इसे ' ==' के साथ समाप्त होने की आवश्यकता है )।
अपनी निजी कुंजी को न चिपकाएं, बल्कि अपनी जनता को बताएं। एक सार्वजनिक कुंजी कुछ इस तरह दिखाई देगी:

ssh-rsa AAAAB3<big string here>== tek...@gmail.com 

(नोट: क्या आपने अपनी ssh कुंजियों के लिए पासफ़्रेज़ का उपयोग किया है? यह पासफ़्रेज़ के बिना आसान होगा)

धक्का देते समय इस्तेमाल किया गया url भी जांचें ( git@github.com/..., नहीं git://github.com/...)

जांचें कि आपके पास अपनी कुंजी का उपयोग करने और कैश करने के लिए SSH एजेंट है।

इसे इस्तेमाल करे:

 $ ssh -i path/to/public/key git@github.com

यदि वह काम करता है, तो इसका मतलब है कि आपकी कुंजी आपके ssh क्लाइंट द्वारा GitHub को नहीं भेजी जा रही है।


1
बहुत बुरा मैं तुम्हें एक से अधिक बार वोट नहीं दे सकता! मुझे यह समस्या दो सप्ताह में दो बार हुई और मैंने इसे हर बार गूगल करने के बाद मुझे यह एसओ पोस्ट मिला। धन्यवाद! :)
आयनो स्टाकि

1
मैं इस के साथ कुश्ती कर रहा था - मैंने सभी git config को बदल दिया था, लेकिन ssh-add वह चरण था जो मुझे याद आ रहा था - बहुत बहुत धन्यवाद!
मेटाडोर

इस महान उत्तर के संदर्भ में यह सिर्फ एक छोटा सा सुझाव था - लेकिन मुझे "जीथहब" (या सर्वरनाम) के "मूल" का नाम बदलने के बारे में थोड़ा प्यार है। यह वास्तव में अवधारणा बनाने में मदद करता है कि आप चीजें कहां भेज रहे हैं।
एलेक्स सी।

इसने मेरे लिए भी काम किया। यदि आप गीथुब पर निर्देशों का पालन करते हैं तो यह तुरंत स्पष्ट नहीं है कि मूल क्या है।
निक

help.github.com/win-set-up-git अंत तक का पालन करें - यह मेरी मदद की। अनुमति से इनकार (publickey)। - इसका मतलब है कि आपने स्थानीय मशीन पर आपके लिए एक ssh कुंजी सेट की है। ssh-keygen -t rsa -C "your_email@youremail.com"
रोजर एलियन

28

यह आपके रिमोट के साथ एक समस्या है। जब आप करते हैं git push origin master, originतो दूरस्थ है और masterवह शाखा है जिसे आप धक्का दे रहे हैं।

जब आप ऐसा करते हैं:

git remote

मैं शर्त लगाता हूं कि सूची में शामिल नहीं है origin। मूल रिमोट को फिर से जोड़ने के लिए:

git remote add origin git@github.com:your_github_username/your_github_app.git

या, यदि यह मौजूद है लेकिन गलत तरीके से स्वरूपित किया गया है:

git remote rm origin
git remote add origin git@github.com:your_github_username/your_github_app.git

10

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

यदि ऐसा है, तो यह प्रयास करें:

  1. $>cd ~/.ssh

  2. $>ls

  3. यदि ls का आउटपुट है known_hostsऔर कुछ नहीं है, तो यहाँ जाएँ: http://help.github.com/mac-key-setup/ और "जनरेटिंग ए की" सेक्शन के निर्देशों का पालन करना शुरू करें और नीचे करें।

उन निर्देशों को चलाने के बाद, मेरे "गिट पुश ओरिजिनल मास्टर" कमांड ने काम किया।


मैं सिर्फ इस पृष्ठ की तलाश में था। बहुत बहुत धन्यवाद! = डी
ह्यूगो मोटा

इसने मेरी समस्या हल कर दी। मेरा OS मैक ओएस एक्स है, और मैं "रूबी ऑन रेल्स 3 ट्यूटोरियल" पुस्तक का पालन कर रहा था, और मैं 1.3.4 खंड पर अटक गया, जब मुझे git push origin master.यह करने की आवश्यकता थी यह पहली बार गिट और रेल की स्थापना थी। उम्मीद है, इससे अन्य लोगों को मदद मिली।
शिवबाबू

4

मैं एक ही समस्या है और मुझे लगता है कि फ़ायरवॉल गिट प्रोटोकॉल को अवरुद्ध कर रहा है। इसलिए अंत में मुझे लाने और धक्का देने के लिए https: // का उपयोग करना होगा। हालांकि यह हमेशा उपयोगकर्ता को पासवर्ड दर्ज करने के लिए संकेत देगा ...

यहाँ उदाहरण है कि मेरे लिए क्या काम कर रहा है (बस उन कठबोली उपयोग git के साथ साझा करने के लिए: // प्रोटोकॉल :)

git fetch https://[user-name]@github.com/[user-name]/[project].git

यदि उपरोक्त काम करता है, तो आप मूल को हटा सकते हैं और बदल सकते हैं

git remote rm origin  
git remote add origin https://[user-name]@github.com/[user-name]/[project].git

1
~/.netrcयदि आप चाहें तो आप फ़ाइल स्टोर पासवर्ड का उपयोग कर सकते हैं। इसका curlउपयोग HTTP (S) ट्रांसफर के लिए git द्वारा किया गया उपयोग होता है , अगर आपको इसका उपयोग करने की बारीकियों को देखना है।
एरोमास्टर

1
@ एरोमास्टर: ध्यान दें कि यदि आप विंडोज पर हैं, तो आपको ~/_netrc(' _' नहीं, ' .') का उपयोग करने की आवश्यकता है
VONC

टिप्पणियों के लिए धन्यवाद, मैं कोशिश करूँगा!
केन

इसने मेरे लिए काम किया। धन्यवाद। मुझे आश्चर्य है कि यह एक बग है या नहीं।
लैरी बैटल

1

मुझे लगता है कि यह एक अन्य मामला है जिसमें त्रुटि संदेश भ्रामक हैं। आमतौर पर जब मैंने उस त्रुटि को देखा है तो वह ssh समस्याओं के कारण है। क्या आपने अपने सार्वजनिक ssh कुंजी को अपने github खाते में जोड़ा है?

संपादित करें: इसके अलावा, xinet.d फोरम पोस्ट एक सेवा के रूप में गिट-डेमन को चलाने की बात कर रहा है ताकि लोग आपके सिस्टम को खींच सकें। गिटहब को धकेलने के लिए गिट-डेमन चलाना आवश्यक नहीं है।


1
मैंने अपने सार्वजनिक कुंजी को अपने github खाते में जोड़ा। - समस्या तब शुरू हुई जब मैंने अपने Git में एक दूरस्थ शाखा जोड़ी।
लेओ लेपोल्ड हर्ट्ज़ '28

1
मैंने एक नया ssh की-जोड़ी बनाई। मैंने गितूब को नई कुंजी चिपकाई और पुराने को गितूब से हटा दिया। वही समस्या बनी रहती है।
लेओ लेपोल्ड हर्ट्ज़ '28

1

मुझे वही समस्या मिली और मैंने सिर्फ GHHub में अपने खाते में ~ / .ssh / id_rsa.pub की सामग्री जोड़ी। उसके बाद बस फिर से कोशिश करें git push origin master, यह काम करना चाहिए।


0

उन्हें याद रखना महत्वपूर्ण है कि 'मूल' वह मूल्य नहीं है जिसका आपको उपयोग करने की आवश्यकता हो सकती है ... यह मेरे लिए तब काम आया जब मैंने रेपो के नाम के साथ 'मूल' को बदल दिया।


0

एक संभावना यह है कि उपरोक्त उत्तर पता नहीं है कि आपके पास अपने शेल से एसएचएस एक्सेस नहीं हो सकता है। यही है, आप एक नेटवर्क में हो सकते हैं (कुछ कॉलेज नेटवर्क ऐसा करते हैं) जहां ssh सेवा अवरुद्ध है। उस स्थिति में आप न केवल गिटबब सेवाओं बल्कि किसी भी अन्य एसएएस सेवाओं को प्राप्त करने में सक्षम होंगे। यदि आप किसी अन्य ssh सेवा का उपयोग करने की कोशिश कर रहे हैं तो यह समस्या हो सकती है। यह मेरे साथ मामला था।


0

मेरे पास यह समस्या थी और इसे हल करने के लिए विभिन्न समाधानों की कोशिश की गई थी, जिनमें से कई ऊपर सूचीबद्ध हैं (कॉन्फ़िगरेशन फ़ाइल, डीबग एसश आदि)। अंत में, मैंने इसे एक नए रिपॉजिटरी ऑनसाइट - जीथब न्यू रिपोजिटरी का निर्माण करते समय जीआईटीबी निर्देशों के अनुसार जीयू पुश में -यू स्विच को शामिल करके हल किया।

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