घातक: 'https://github.com' के लिए उपयोगकर्ता नाम नहीं पढ़ सका: ऐसी कोई फ़ाइल या निर्देशिका नहीं


98

मुझे निम्न समस्या है जब मैं विंडोज़ पर गिट बैश का उपयोग करके कोड खींचने की कोशिश करता हूं:

fatal: could not read Username for 'https://github.com': No such file or directory

मैंने पहले ही यहां दिए गए स्वीकृत समाधान को लागू करने का प्रयास किया है:

... लेकिन समस्या बनी रहती है। मूल जोड़ने / हटाने के बाद भी मुझे वही त्रुटि मिलती है।


क्या आपने उपयोगकर्ता नाम कॉन्फ़िगर किया था? git config --global user.name "Your Name Here"
राउल एंड्रेस

मैंने पहले ही कोशिश की थी, लेकिन यह मेरे git यूजरनेम की बात नहीं कर रहा है, मुझे लगता है कि यह git रिपॉजिटरी के उपयोगकर्ता नाम के लिए समस्या दे रहा है जिसे मैं यहां पर कॉल कर रहा हूं।
noobie-php

जवाबों:


70

SSH कुंजियों को यहां सेटअप करने के लिए चरणों का पालन करें: https://help.github.com/articles/generating-ssh-keys

या

git remote add origin https://{username}:{password}@github.com/{username}/project.git

3
दूसरा विकल्प काम नहीं करता था क्योंकि मैंने पहले ही 'ओरिजिन जीथब' जोड़ दिया था। मैंने मूल [गिट रिमोट रिमूव ओरिजिन] को हटा दिया और फिर लिखा कि मेरे उपयोगकर्ता नाम और पासवर्ड के उत्तर में क्या है और यह ठीक काम करता है।
P_Rein

10
इसके बजाए इसे हटाने और मूल फिर से जोड़ने की आप भी सिर्फ URL का उपयोग बदल सकते हैंgit remote set-url origin https://{username}:{password}@github.com/...
क्रिस

10
@ क्रिस समाधान काम करता है, लेकिन यह उपयोगकर्ता के जीथब खाते के पासवर्ड को संग्रहीत करता है और इसे केवल टाइप करके पढ़ा जाता हैgit remote -v
जेफरसन सिल्वा

क्रिस का विकल्प मेरे लिए काम करता है! मैंने जेफरसन सिल्वा के साथ इसका पालन किया और इसने अच्छा काम किया। अभी भी एक error: cannot spawn sh: No such file or directoryसंदेश है ...
TheSciGuy

14

मैंने उसी समस्या का सामना किया। यह समस्या तब आई जब मैंने HTTPS URL का उपयोग करके क्लोन किया और फिर विंडोज पर Git Bash का उपयोग करके परिवर्तनों को धकेलने का प्रयास किया:

git clone https://github.com/{username}/{repo}.git

हालाँकि, जब मैंने क्लोन करने के लिए SSH URL का उपयोग किया, तो यह समस्या उत्पन्न नहीं हुई:

git clone git@github.com:{username}/{repo}.git

3
ठीक है, लेकिन ऐसा क्यों होता है?
जिली

Msysgit में एक बग की वजह से: github.com/msysgit/msysgit/issues/153
Fayaz

मुझे यह संदेश गीतालाब पर चल रहे डॉकटर कंटेनर के भीतर मिला। आधार छवि है python:3.7-slim। तो यह विंडोज से संबंधित नहीं है।
मार्टिन थोमा

मेरे मामले में, यह ssh का उपयोग करने वाला एक संगठन रेपो था: //git.gartner.com
अंकुश

11

मेरे लिए ऊपर दिए गए सुझाव से कुछ भी काम नहीं आया, मैं git pullजेनकिंस शेल स्क्रिप्ट का उपयोग करता हूं और जाहिर तौर पर यह गलत उपयोगकर्ता नाम लेता है। एसएसएच पर स्विच किए बिना इसे ठीक करने का एक तरीका खोजने से पहले मैंने उम्र बिताई।

आपके उपयोगकर्ता के फ़ोल्डर में .gitconfig फ़ाइल (यदि आपके पास पहले से नहीं है) और निम्न प्रारूप में अपनी साख डालें: https://user:pass@example.comअधिक जानकारी । आपके .itconfig फ़ाइल लिंक के बाद उन क्रेडेंशियल्स, मेरे मामले में यह था:

[credential] helper = store --file /Users/admin/.git-credentials

अब git हमेशा उन क्रेडेंशियल्स का उपयोग करेगा चाहे कोई भी हो। मुझे उम्मीद है कि यह किसी की मदद करेगा, जैसे इसने मेरी मदद की।


मेरे लिए यह केवल काम किया जब मैं डाल [credential] helper = store --file /..../.git-credentialsमें .git/configमें मेरे काम करने निर्देशिका
किरिल Oficerov

11

ध्यान दें कि अगर आपको इसके बजाय यह त्रुटि मिल रही है:

fatal: could not read Username for 'https://github.com': No error

फिर आपको अपने Git को संस्करण 2.16या बाद में अपडेट करने की आवश्यकता है ।


7

मुझे यहाँ अपना उत्तर मिला :

संपादित करें ~/.gitconfigऔर निम्नलिखित जोड़ें:

[url "git@github.com:"]
 insteadOf = https://github.com/

यद्यपि यह एक अलग समस्या हल करता है, त्रुटि कोड समान है ...


6

यदि आप ssh के बजाय https का उपयोग जारी रखना चाहते हैं, और सुरक्षा कारणों से अपने उपयोगकर्ता नाम और पासवर्ड में टाइप से बचें।

आप गितुब ऑउथ टोकन की कोशिश भी कर सकते हैं, फिर आप कर सकते हैं git config remote.origin.url 'https://{token}@github.com/{username}/{project}.git' या git remote add origin 'https://{token}@github.com/{username}/{project}.git'

यह मेरे लिए काम करता है!


4

यह त्रुटि तब भी हो सकती है जब किसी अमान्य HTTP URL को क्लोन करने की कोशिश की जा रही हो। उदाहरण के लिए, यह वह त्रुटि है जो मुझे एक GitHub URL को क्लोन करने की कोशिश में मिली जो कुछ वर्णों से दूर थी:

$ git clone -v http://github.com/username/repo-name.git
Cloning into 'repo-name'...
Username for 'https://github.com': 
Password for 'https://github.com': 
remote: Repository not found.
fatal: Authentication failed for 'https://github.com/username/repo-name.git/'

यह वास्तव में Emacs के अंदर हुआ था, हालाँकि, Emacs में त्रुटि इस तरह दिखती थी:

fatal: could not read Username for ’https://github.com’: No such device or address

इसलिए एक उपयोगी त्रुटि के बजाय यह कहना कि उस URL में ऐसा कोई रेपो नहीं था, इसने मुझे दिया, जब तक कि मुझे पता नहीं चला कि URL गलत था, तब तक मुझे एक जंगली हंस पीछा पर भेज रहा था।

यह git संस्करण 2.7.4 के साथ है।

मैं इसे यहां पोस्ट कर रहा हूं क्योंकि यह मेरे साथ एक महीने पहले हुआ था और अभी-अभी फिर से, मुझे फिर से उसी जंगली हंस पीछा पर भेज रहा है। > :(


3

संक्षिप्त जवाब:

git init
git add README.md
git commit -m "first commit"


git remote add origin https://github.com/{USER_NAME}/{REPOSITORY_NAME}.git
git push --set-upstream origin master

यदि यह एक नया भंडार नहीं है तो पहली तीन पंक्तियों को अनदेखा करें।

लंबा विवरण:

बस एक ही समस्या थी, जैसा कि उपरोक्त उत्तर में से एक ने भी मेरी मदद की, मैंने इस समाधान को पोस्ट करने का फैसला किया है जो मेरे लिए काम करता है।

कुछ नोट:

  • SSH कुंजी उत्पन्न की गई थी
  • SSH कुंजी को गिटब में जोड़ा गया था, फिर भी यह त्रुटि थी।
  • मैंने इस परियोजना के लिए GitHub पर एक नया भंडार बनाया है और वर्णित चरणों का पालन किया है

कमांड लाइन टूल के रूप में मैंने GitShell (Windows के लिए, मैं Mac पर Terminal.app का उपयोग करता हूं) का उपयोग किया।
GitShell आधिकारिक GitHub टूल है, इसे https://windows.github.com/ से डाउनलोड किया जा सकता है

आशा है कि यह किसी को भी, जो एक ही समस्या है मदद करता है।


2

मैंने Git का नया संस्करण स्थापित करके इसे ठीक किया। मैंने जो संस्करण स्थापित किया है, वह https://git-scm.com से 2.10.2 है । अंतिम पोस्ट यहाँ देखें: https://www.bountysource.com/issues/31602800-git-fails-to-authenticate-access-to-private-repository-over-https

नए गिट बैश के साथ, क्रेडेंशियल मैनेजर विंडो पॉप अप हो जाती है और आप अपना उपयोगकर्ता नाम और पासवर्ड दर्ज कर सकते हैं, और यह काम करता है!


1

यह सिस्टम क्रेडेंशियल कैश में आपके संग्रहीत क्रेडेंशियल्स के साथ एक समस्या है। आपके पास संभवत: wincred या winstore के लिए config वेरिएबल 'credential.helper' सेट है और यह इसे क्लियर करने में असफल हो रहा है। यदि आप कंट्रोल पैनल शुरू करते हैं और क्रेडेंशियल मैनेजर एप्लेट लॉन्च करते हैं, तो "git: https://github.com " लेबल वाले जेनेरिक क्रेडेंशियल्स सेक्शन में आइटम देखें । यदि आप इन्हें हटाते हैं, तो अगली बार फिर से बनाया जाएगा लेकिन क्रेडेंशियल हेल्पर उपयोगिता आपको अपनी नई साख के लिए कहेंगी।


आप किस उपकरण का उल्लेख कर रहे हैं, मैं वर्तमान में खिड़कियों के लिए बैश का उपयोग कर रहा हूं
noobie-php

हाँ - तो क्रेडेंशियल मैनेजर कंट्रोल पैनल एप्लेट में एक नज़र है। अगर वहाँ कुछ भी नहीं है जैसा कि उल्लेख किया गया है, तो अपने कॉन्फ़िगरेशन की जांच करें - git config --global -l | grep credential। यदि कुछ भी आउटपुट है, तो वह उपयोगिता होगी जो आपके स्टोर किए गए क्रेडेंशियल्स को सर्वर पर फीड करने की कोशिश कर रही है जब आप धक्का देते हैं।
patthoyts

1
मैं इस समस्या नहीं है चलो मुझे समझाने लगता मेट, आप मैं क्या कह कोशिश कर रहा हूँ प्राप्त हो सकता है, जिस पर यह Git रेपो लिंक मुसीबत बना रही है जुड़ा हुआ है, मुझे नहीं लगता है कि मेरी खुद उपयोगकर्ता नाम यहाँ मुसीबत कर रही है। जहाँ तक मुझे पता है कि क्रेडेंशियल मैनजर व्यक्तिगत साख को प्रबंधित करने में मदद करता है, न कि रिपॉजिटरी के क्रेडेंशियल्स को। git remote add origin https://github.com/username/Hello-World.gitusername
noobie-php

1

अपने दूरस्थ url को इस तरह बदलें:

git remote set-url origin https://<username>@github.com/<username>/<repo>.git

अन्य सभी पोस्ट रिमोट यूआरएल में पासवर्ड डालने का संकेत देते हैं, जो तब डिस्क पर सादे पाठ को संग्रहीत किया जाएगा - एक सुरक्षा नं। केवल उपयोगकर्ता नाम की आवश्यकता है, क्रेडेंशियल स्टोर आपके github उपयोगकर्ता नाम / पासवर्ड का अनुरोध करेगा और फिर इसे स्वचालित रूप से उपयोग किए जाने के लिए सुरक्षित रूप से संग्रहीत करेगा।
बे

1

TL; DR: जांचें कि क्या आप पढ़ / लिख सकते हैं /dev/tty। यदि नहीं और आपने suशेल को खोलने के लिए उपयोग किया है, तो जांचें कि क्या आपने इसे सही तरीके से उपयोग किया है।

मैं एक ही समस्या का सामना कर रहा था लेकिन लिनक्स पर और मुझे समस्या मिल गई है। मेरे पास अपनी साख संग्रहीत नहीं है, इसलिए मैं हमेशा उन्हें शीघ्रता से इनपुट करता हूं:

Username for 'https://github.com': foo
Password for 'https://foo@github.com': 

जिस तरह से git http (s) कनेक्शन का उपयोग कर रहा है, /usr/lib/git-core/git-remote-https आप यहां स्ट्रेस देख सकते हैं:

stat("/usr/lib/git-core/git-remote-https", {st_mode=S_IFREG|0755, st_size=1366784, ...}) = 0
pipe([9, 10])                           = 0
rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f65398bb350) = 18177
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
close(10)                               = 0
read(9, "", 8)                          = 0
close(9)                                = 0
close(5)                                = 0
close(8)                                = 0
dup(7)                                  = 5
fcntl(5, F_GETFL)                       = 0 (flags O_RDONLY)
write(6, "capabilities\n", 13)          = 13
fstat(5, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
read(5, "fetch\noption\npush\ncheck-connecti"..., 4096) = 38
write(6, "option progress true\n", 21)  = 21
read(5, "ok\n", 4096)                   = 3
write(6, "option verbosity 1\n", 19)    = 19
read(5, "ok\n", 4096)                   = 3
stat(".git/packed-refs", {st_mode=S_IFREG|0664, st_size=675, ...}) = 0
lstat(".git/objects/10/52401742a2e9a3e8bf068b115c3818180bf19e", {st_mode=S_IFREG|0444, st_size=179, ...}) = 0
lstat(".git/objects/4e/35fa16cf8f2676600f56e9ba78cf730adc706e", {st_mode=S_IFREG|0444, st_size=178, ...}) = 0
dup(7)                                  = 8
fcntl(8, F_GETFL)                       = 0 (flags O_RDONLY)
close(8)                                = 0
write(6, "list for-push\n", 14)         = 14
read(5, fatal: could not read Username for 'https://github.com': No such device or address
"", 4096)                       = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=18177, si_uid=1000, si_status=128, si_utime=6, si_stime=2} ---
exit_group(128)                         = ?
+++ exited with 128 +++

इसलिए मैंने इसे सीधे कॉल करने की कोशिश की:

echo "list for-push" | strace /usr/lib/git-core/git-remote-https my

और परिणाम:

poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 1 ([{fd=3, revents=POLLIN|POLLRDNORM}])
recvfrom(3, "\27\3\3\1\32", 5, 0, NULL, NULL) = 5
recvfrom(3, "\307|4Q\21\306\334\244o\237-\230\255\336\25\215D\257\227\274\r\330\314U\5\17\217T\274\262M\223"..., 282, 0, NULL, NULL) = 282
openat(AT_FDCWD, "/dev/tty", O_RDONLY)  = -1 ENXIO (No such device or address)
openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=2995, ...}) = 0
read(4, "# Locale name alias data base.\n#"..., 4096) = 2995
read(4, "", 4096)                       = 0
close(4)                                = 0
openat(AT_FDCWD, "/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale-langpack/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale-langpack/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
write(2, "fatal: could not read Username f"..., 83fatal: could not read Username for 'https://github.com': No such device or address
) = 83
exit_group(128)                         = ?
+++ exited with 128 +++

और यहाँ यह मेरे पास आया:

openat(AT_FDCWD, "/dev/tty", O_RDONLY)  = -1 ENXIO (No such device or address)
...
write(2, "fatal: could not read Username f"..., 83fatal: could not read Username for 'https://github.com': No such device or address
) = 83

git-remote-https/dev/ttyअगर यह काम करता है तो मैंने जांचने के लिए क्रेडेंशियल्स पढ़ने की कोशिश की :

$ echo ahoj > /dev/tty
bash: /dev/tty: No such device or address

लेकिन दूसरे टर्मिनल में:

# echo ahoj > /dev/tty
ahoj

मुझे पता था कि मैंने इस उपयोगकर्ता पर स्विच किया है suइसलिए मैंने शेल को देखने के लिए बाहर निकाला कि कैसे और कैसे पता चला कि मैंने कमांड का उपयोग किया है su danman -इसलिए मैंने इसे फिर से परीक्षण किया:

~# su danman -
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
/root$ echo ahoj > /dev/tty
bash: /dev/tty: No such device or address

मैंने शायद संदेश को नजरअंदाज किया और काम करना जारी रखा लेकिन यही कारण था। जब मैंने सही su - danmanकाम करते हुए स्विच किया तो सब कुछ ठीक हो गया:

~# su - danman
danman@speedy:~$ echo ahoj > /dev/tty
ahoj

इसके बाद, गिट ने सही तरीके से काम करना शुरू कर दिया


1

जेनकींस पाइपलाइन में यह त्रुटि पाने वालों के लिए, यह एसएसएच एजेंट प्लगइन का उपयोग करके तय किया जा सकता है । फिर अपने git कमांड को कुछ इस तरह से लपेटें:

sshagent(['my-ssh-key']) {
    git remote set-url origin git@github.com:username/reponame.git
    sh 'git push origin branch_name'
}

0

CreativeMagic समाधान की कोशिश कर रहा है, क्रेडेंशियल समस्या की पुष्टि की है:

प्रॉम्प्ट >>> ' https://github.com ' के लिए यूजरनेम

इसलिए, मैंने अपने मूल यूआरएल को बदल दिया

git remote set-url --add origin http://github.com/user/repo

तथा

git push --set-upstream origin master

2
इसलिए मैं कभी भी लोगों की मदद नहीं करता हूं
tuxun


0

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

go mod vendor

go: errors parsing go.mod:
/Users/macos/Documents/sample/go.mod:22: git ls-remote -q https://git.aaa.team/core/some_repo.git in /Users/macos/go/pkg/mod/cache/vcs/a94d20a18fd56245f5d0f9f1601688930cad7046e55dd453b82e959b12d78369: exit status 128:
    fatal: could not read Username for 'https://git.aaa.team': terminal prompts disabled

थोड़ी देर कोशिश करने के बाद, मैं उपयोगकर्ता नाम और पासवर्ड में भरने के लिए SSH कुंजी और टर्मिनल प्रॉम्प्ट को हटाने का फैसला करता हूं। सब कुछ तो ठीक है!


0

IntelliJ IDE में मेरे पास एक ही मुद्दा था और मेरे लिए, ऊपर दिए गए सुझाव से कुछ भी काम नहीं आया। मेरे लिए जो काम किया गया है वह निजी से सार्वजनिक के लिए Git रिपॉजिटरी की पहुंच को बदलना है।

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