J'ai le problème suivant lorsque j'essaie d'extraire du code, en utilisant GIT Bash sous Windows
J'ai déjà essayé d'implémenter la solution acceptée fournie ici:
mais le problème persiste. Après avoir ajouté/supprimé Origin, je reçois toujours la même erreur.
fatal: could not read Username for 'https://github.com': No such file or directory
Suivez les étapes pour configurer les clés SSH ici: https://help.github.com/articles/generating-ssh-keys
OR
git remote add Origin https://{username}:{password}@github.com/{username}/project.git
J'ai fait face au même problème. Ce problème s'est produit lorsque j'ai cloné à l'aide de l'URL HTTPS, puis que j'ai essayé de transmettre les modifications à l'aide de Git Bash sous Windows à l'aide de:
git clone https://github.com/{username}/{repo}.git
Cependant, lorsque j'ai utilisé l'URL SSH pour cloner, ce problème ne s'est pas produit:
git clone [email protected]:{username}/{repo}.git
Si vous obtenez plutôt cette erreur:
fatal: impossible de lire le nom d'utilisateur pour ' https://github.com ': aucune erreur
Ensuite, vous devez mettre à jour votre Git vers la version 2.16
ou ultérieure.
Réponse courte:
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
Ignore les trois premières lignes s'il ne s'agit pas d'un nouveau référentiel.
Description plus longue:
Juste le même problème, car aucune des réponses ci-dessus ne m'a aidé, j'ai décidé de poster cette solution qui a fonctionné pour moi.
Quelques notes:
En tant qu'outil de ligne de commande, j'ai utilisé GitShell (pour Windows, j'utilise Terminal.app sur Mac).
GitShell est un outil officiel de GitHub, peut être téléchargé à partir de https://windows.github.com/
J'espère que cela aide à tous ceux qui ont le même problème.
TL; DR: vérifiez si vous pouvez lire/écrire dans /dev/tty
. Si non et que vous avez utilisé su
pour ouvrir le shell, vérifiez si vous l'avez utilisé correctement.
Je faisais face au même problème mais sous Linux et j'ai trouvé le problème. Je n'ai pas mes informations d'identification stockées, donc je les saisis toujours dans l'invite:
Username for 'https://github.com': foo
Password for 'https://[email protected]':
La manière dont git traite les connexions http (s) utilise /usr/lib/git-core/git-remote-https
, vous pouvez voir strace ici:
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 +++
Alors j'ai essayé de l'appeler directement:
echo "list for-Push" | strace /usr/lib/git-core/git-remote-https my
et le résultat:
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 +++
Et voici, il m'est venu:
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
essaie de lire les informations d'identification via /dev/tty
alors j'ai testé si cela fonctionnait:
$ echo ahoj > /dev/tty
bash: /dev/tty: No such device or address
Mais dans un autre terminal:
# echo ahoj > /dev/tty
ahoj
Je savais que je passais sur cet utilisateur en utilisant su
alors je suis sorti de Shell pour voir comment et découvert que j'ai utilisé la commande su danman -
, je l'ai donc testé à nouveau:
~# 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
J'ai probablement ignoré le message et continué à travailler, mais c'était la raison. Quand j'ai changé en utilisant le bon su - danman
tout a bien fonctionné:
~# su - danman
danman@speedy:~$ echo ahoj > /dev/tty
ahoj
Après cela, git a commencé à fonctionner correctement
Cette erreur peut également se produire lorsque vous essayez de cloner une URL HTTP non valide. Par exemple, voici l'erreur que j'ai eu lors de la tentative de clonage d'une URL GitHub contenant quelques caractères:
$ 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/'
Cependant, cela s'est passé à l'intérieur d'Emacs, donc l'erreur dans Emacs ressemblait à ceci:
fatal: could not read Username for ’https://github.com’: No such device or address
Donc, au lieu d’une erreur utile disant qu’il n’y avait pas de telle prise en pension à cette URL, cela m’a donné cela, m’envoyant une poursuite effrénée jusqu’à ce que j’ai enfin réalisé que l’URL était incorrecte.
Ceci est avec la version 2.7.4 de Git.
Je poste ceci ici parce que cela m'est arrivé il y a un mois et à nouveau tout à l'heure, m'envoyant à nouveau sur la même chasse à l'oie sauvage. > :(
Ceci est un problème avec vos informations d'identification stockées dans le cache des informations d'identification système. La variable de configuration 'credential.helper' est probablement définie sur wincred ou winstore et elle ne parvient pas à l'effacer. Si vous démarrez le Panneau de configuration et lancez l'applet Credential Manager, recherchez des éléments dans la section des informations d'identification génériques intitulée "git: https://github.com ". Si vous les supprimez, le sera recréé la prochaine fois mais l'utilitaire d'assistance des informations d'identification vous demandera vos nouvelles informations d'identification.
J'ai trouvé ma réponse ici :
éditez ~/.gitconfig
et ajoutez ce qui suit:
[url "[email protected]:"]
insteadOf = https://gitlab.com/
Bien que cela résolve un problème différent, le code d'erreur est le même ...
J'ai résolu ce problème en installant une version plus récente de Git. La version que j'ai installée est la 2.10.2 de https://git-scm.com . Voir le dernier message ici: https://www.bountysource.com/issues/31602800-git-fails-to-authenticate-access-toc.it-private-repository-over-https
Avec la nouvelle version de Git Bash, la fenêtre du gestionnaire des informations d'identification s'ouvre et vous pouvez entrer votre nom d'utilisateur et votre mot de passe, et cela fonctionne!
Si vous souhaitez continuer, utilisez https à la place de ssh et évitez de saisir votre nom d'utilisateur et votre mot de passe pour des raisons de sécurité.
Vous pouvez également essayer Jeton Github OAuth , puis vous pouvez utiliser git config remote.Origin.url 'https://{token}@github.com/{username}/{project}.git'
Ou git remote add Origin 'https://{token}@github.com/{username}/{project}.git'
Cela fonctionne pour moi!
Remplacez votre URL distante comme ceci:
git remote set-url Origin https://<username>@github.com/<username>/<repo>.git
Pour moi, rien n’a fonctionné avec la suggestion ci-dessus, j’utilise git pull
depuis le script jenkins Shell et apparemment, il prend un mauvais nom d’utilisateur. J'ai passé beaucoup de temps avant de trouver un moyen de résoudre ce problème sans passer à SSH.
Dans votre dossier de l'utilisateur, créez un fichier .gitconfig (si vous ne l'avez pas déjà) et mettez vos informations d'identification au format suivant: https://user:[email protected]
, more info . Après que votre fichier .gitconfig ait été lié à ces informations d'identification, dans mon cas, c'était:
[credential]
helper = store --file /Users/admin/.git-credentials
Maintenant, git utilisera toujours ces informations d'identification quoi qu'il arrive. J'espère que cela aidera quelqu'un, comme cela m'a aidé.
Essayez d’utiliser un shell Windows normal tel que CMD.
fatal: impossible de lire le nom d'utilisateur pour ' https://github.com ': aucune erreur
Je viens d'utiliser Git pour cloner
$ git clone -v http://github.com/username/repo-name.git
Cloning into 'repo-name'...
Username for 'https://github.com':
Password for 'https://github.com':
C'est bon maintenant ????.