it-swarm.com.de

fatal: Benutzername für "https://github.com" konnte nicht gelesen werden: Keine solche Datei oder Verzeichnis

Ich habe das folgende Problem, wenn ich versuche, Code mit GIT Bash unter Windows zu ziehen

Ich habe bereits versucht, die hier bereitgestellte akzeptierte Lösung zu implementieren:

aber das problem bleibt bestehen. Nach dem Hinzufügen/Entfernen von Origin bekomme ich immer noch die gleiche Fehlermeldung. 

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

Befolgen Sie die Schritte zum Einrichten der SSH-Schlüssel hier: https://help.github.com/articles/generating-ssh-keys

OR

git remote add Origin https://{username}:{password}@github.com/{username}/project.git
40
Tony Zampogna

Ich hatte genau das gleiche Problem. Dieses Problem trat auf, als ich mit der HTTPS-URL geklont wurde und dann versucht hatte, die Änderungen mit Git Bash unter Windows zu verschieben:

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

Bei der Verwendung der SSH-URL zum Klonen trat dieses Problem jedoch nicht auf:

git clone [email protected]:{username}/{repo}.git
8
Fayaz

Wenn Sie stattdessen diese Fehlermeldung erhalten:

fatal: Benutzername für ' https://github.com ' konnte nicht gelesen werden: Kein Fehler

Dann müssen Sie Ihr Git auf Version 2.16 oder höher aktualisieren.

6
Rosdi Kasim

Kurze Antwort:

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

Ignoriere die ersten drei Zeilen, falls es kein neues Repository ist.

Längere Beschreibung:

Hatte gerade das gleiche Problem, da keine der obigen Antworten mir geholfen hat, habe ich mich entschieden, diese Lösung zu posten, die für mich funktioniert.

Einige Anmerkungen:

  • Der SSH-Schlüssel wurde generiert
  • Der SSH-Schlüssel wurde zu github hinzugefügt, der immer noch diesen Fehler hatte.
  • Ich habe für GitHub ein neues Repository für dieses Projekt erstellt und die beschriebenen Schritte ausgeführt

Als Befehlszeilenprogramm habe ich GitShell verwendet (für Windows verwende ich Terminal.app auf einem Mac).
GitShell ist offizielles GitHub-Tool. Sie können es von https://windows.github.com/ herunterladen.

Hoffe, das hilft jedem, der das gleiche Problem hat.

3
Creative Magic

TL; DR: Überprüfe, ob du in /dev/tty lesen/schreiben kannst. Wenn nein und du su zum Öffnen der Shell benutzt hast, überprüfe, ob du es richtig benutzt hast.

Ich hatte das gleiche Problem, aber unter Linux, und ich habe das Problem gefunden. Ich habe meine Anmeldeinformationen nicht gespeichert, daher gebe ich sie immer bei der Eingabeaufforderung ein:

Username for 'https://github.com': foo
Password for 'https://[email protected]': 

Die Art und Weise, wie Git mit http (s) -Verbindungen umgeht, verwendet /usr/lib/git-core/git-remote-https. Sie können Strace hier sehen:

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 +++

Also habe ich versucht, es direkt anzurufen:

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

und das Ergebnis:

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 +++

Und hier kam es zu mir:

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 versucht, Anmeldeinformationen über /dev/tty zu lesen, und ich habe getestet, ob es funktioniert:

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

Aber in einem anderen Terminal:

# echo ahoj > /dev/tty
ahoj

Ich wusste, dass ich mit su zu diesem Benutzer gewechselt bin, also habe ich die Shell verlassen, um zu sehen, wie ich den Befehl su danman - verwendet habe, und habe ihn erneut getestet:

~# 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

Wahrscheinlich habe ich die Nachricht ignoriert und weitergearbeitet, aber das war der Grund. Als ich mit dem richtigen su - danman gewechselt habe, hat alles gut funktioniert:

~# su - danman
[email protected]:~$ echo ahoj > /dev/tty
ahoj

Danach fing git an, richtig zu arbeiten

1
danman

Dieser Fehler kann auch auftreten, wenn versucht wird, eine ungültige HTTP-URL zu klonen. Dies ist beispielsweise der Fehler, den ich beim Klonen einer GitHub-URL bekam, die einige Zeichen entfernt war:

$ 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/'

Es ist tatsächlich in Emacs passiert, der Fehler in Emacs sah also so aus:

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

Anstelle eines hilfreichen Fehlers, der besagt, dass es an dieser URL kein solches Repo gab, gab es mir das und gab mir eine wilde Verfolgungsjagd, bis mir schließlich klar wurde, dass die URL falsch war.

Dies ist mit Git Version 2.7.4.

Ich poste dies hier, weil es mir vor einem Monat passiert ist und gerade jetzt wieder auf die gleiche wilde Gansjagd geht. > :(

1
blujay

Dies ist ein Problem mit Ihren gespeicherten Anmeldeinformationen im Cache für Systemberechtigungsnachweise. Wahrscheinlich haben Sie die Konfigurationsvariable 'credential.helper' entweder auf wincred oder auf winstore gesetzt und können diese nicht löschen. Wenn Sie die Systemsteuerung starten und das Applet Credential Manager starten, suchen Sie im Abschnitt mit den generischen Anmeldeinformationen nach Elementen mit der Bezeichnung "git: https://github.com ". Wenn Sie diese löschen, wird das nächste Mal neu erstellt, aber das Hilfsprogramm für Hilfeinformationen für Anmeldeinformationen fragt Sie nach Ihren neuen Anmeldeinformationen.

1
patthoyts

Ich habe meine Antwort gefunden hier :

~/.gitconfig bearbeiten und Folgendes hinzufügen:

[url "[email protected]:"]
 insteadOf = https://gitlab.com/

Obwohl es ein anderes Problem löst, ist der Fehlercode der gleiche ...

1
Hitsugaya198

Dies wurde durch die Installation einer neueren Version von Git behoben. Die von mir installierte Version ist 2.10.2 von https://git-scm.com . Den letzten Beitrag finden Sie hier: https://www.bountysource.com/issues/31602800-git-fails-to-authenticate-access-to-private-repository-over-https

Mit dem neueren Git Bash wird das Fenster für den Berechtigungsmanager geöffnet, und Sie können Ihren Benutzernamen und Ihr Kennwort eingeben. Das funktioniert!

1
David Burson

Wenn Sie weiterhin https statt ssh verwenden möchten, geben Sie aus Sicherheitsgründen Ihren Benutzernamen und Ihr Kennwort ein.

Sie können auch Github OAuth Token versuchen. Dann können Sie git config remote.Origin.url 'https://{token}@github.com/{username}/{project}.git' Oder git remote add Origin 'https://{token}@github.com/{username}/{project}.git'

Das funktioniert bei mir!

0

Ersetzen Sie Ihre Remote-URL folgendermaßen:

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

Für mich hat aus dem oben genannten Vorschlag nichts funktioniert, ich verwende git pull aus dem Jenkins-Shell-Skript und anscheinend braucht es einen falschen Benutzernamen. Ich habe eine Ewigkeit verbracht, bis ich einen Weg gefunden habe, das Problem zu beheben, ohne zu SSH zu wechseln. 

Erstellen Sie im Ordner des Benutzers die .gitconfig-Datei (sofern noch nicht vorhanden) und geben Sie Ihre Anmeldeinformationen in folgendem Format ein: https://user:[email protected], mehr info . Nach der Verknüpfung der .gitconfig-Datei mit diesen Anmeldeinformationen lautete in meinem Fall Folgendes: 

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

Nun wird git diese Anmeldeinformationen immer verwenden, egal was passiert. Ich hoffe es wird jemandem helfen, wie es mir geholfen hat.

0
Katia

Versuchen Sie es mit einer normalen Windows-Shell wie CMD.

0
Vajiheh habibi

fatal: Benutzername für ' https://github.com ' konnte nicht gelesen werden: Kein Fehler

Ich habe nur mit git geklont

$ git clone -v http://github.com/username/repo-name.git
Cloning into 'repo-name'...
Username for 'https://github.com': 
Password for 'https://github.com': 

Jetzt ist es ok ????.

0
Steven