Windowsでgit Bashを使用してコードをプルしようとすると、次の問題が発生します。
fatal: could not read Username for 'https://github.com': No such file or directory
私はすでにここに提供されている受け入れられたソリューションを実装しようとしました:
...しかし問題は解決しません。オリジンを追加/削除した後も、同じエラーが発生します。
Windowsでgit Bashを使用してコードをプルしようとすると、次の問題が発生します。
fatal: could not read Username for 'https://github.com': No such file or directory
私はすでにここに提供されている受け入れられたソリューションを実装しようとしました:
...しかし問題は解決しません。オリジンを追加/削除した後も、同じエラーが発生します。
回答:
こちらの手順に従ってSSHキーを設定してください:https : //help.github.com/articles/generating-ssh-keys
または
git remote add origin https://{username}:{password}@github.com/{username}/project.git
git remote set-url origin https://{username}:{password}@github.com/...
git remote -v
error: cannot spawn sh: No such file or directory
メッセージがあります...
私はまったく同じ問題に直面しました。この問題は、HTTPS URLを使用してクローンを作成し、次にWindowsでGit Bashを使用して変更をプッシュしようとしたときに発生しました。
git clone https://github.com/{username}/{repo}.git
ただし、SSH URLを使用してクローンを作成した場合、この問題は発生しませんでした。
git clone git@github.com:{username}/{repo}.git
python:3.7-slim
です。したがって、Windowsとは関係ありません。
私にとっては、上記の提案からは何も機能せずgit pull
、jenkinsシェルスクリプトから使用しましたが、どうやら間違ったユーザー名が必要です。SSHに切り替えずに修正する方法を見つける前に、私は何年も過ごしました。
ユーザーのフォルダーに.gitconfigファイルを作成し(まだ持っていない場合)、資格情報を次の形式で入力します:https://user:pass@example.com
、詳細情報。.gitconfigファイルがこれらの資格情報にリンクした後、私の場合は次のようになりました:
[credential]
helper = store --file /Users/admin/.git-credentials
これで、gitは何があっても常にこれらの資格情報を使用します。それが私を助けてくれたように、それが誰かを助けることを願っています。
[credential] helper = store --file /..../.git-credentials
たときにのみ機能しました.git/config
続行する場合は、sshの代わりにhttpsを使用し、セキュリティ上の理由からユーザー名とパスワードを入力しないでください。
あなたも試すことができGithubのOAuthのトークンを、あなたが行うことができ、
git config remote.origin.url 'https://{token}@github.com/{username}/{project}.git'
または
git remote add origin 'https://{token}@github.com/{username}/{project}.git'
これは私にとってはうまくいきます!
このエラーは、無効な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です。
これは1か月前と今にも同じように発生したため、ここに投稿します。同じ野生のガチョウの追跡を繰り返し送信します。> :(
短い答え:
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
新しいリポジトリでない場合、最初の3行を無視します。
長い説明:
同じ問題がありましたが、上記の回答のどれも役に立たなかったので、この解決策を投稿することにしました。
いくつかのメモ:
コマンドラインツールとして、GitShellを使用しました(Windowsの場合、MacではTerminal.appを使用しています)。
GitShellは公式のGitHubツールであり、https: //windows.github.com/からダウンロードできます。
これが同じ問題を抱えている人に役立つことを願っています。
新しいバージョンのGitをインストールしてこれを修正しました。インストールしたバージョンはhttps://git-scm.comの 2.10.2 です。ここの最後の投稿を参照してください:https : //www.bountysource.com/issues/31602800-git-fails-to-authenticate-access-to-private-repository-over-https
新しいGit Bashでは、資格情報マネージャーウィンドウがポップアップ表示され、ユーザー名とパスワードを入力できます。
これは、システム資格情報キャッシュに保存されている資格情報の問題です。おそらく、設定変数 'credential.helper'をwincredまたはwinstoreに設定していて、それをクリアできません。コントロールパネルを起動して資格情報マネージャーアプレットを起動する場合は、「git:https : //github.com」というラベルが付いた汎用資格情報セクションでアイテムを探します。これらを削除すると、は次に再作成されますが、資格情報ヘルパーユーティリティが新しい資格情報を要求します。
git config --global -l | grep credential
。出力がある場合、それはプッシュ時にサーバーに保存された資格情報をフィードしようとしているユーティリティです。
git remote add origin https://github.com/username/Hello-World.git
username
次のようにリモートURLを置き換えます。
git remote set-url origin https://<username>@github.com/<username>/<repo>.git
TL; DR:に読み書きできるかどうかを確認します/dev/tty
。いいえsu
、シェルを開くのに使用したことがある場合は、それを正しく使用したかどうかを確認してください。
私は同じ問題に直面していましたが、Linux上で問題を発見しました。資格情報を保存していないので、常にプロンプトで入力します。
Username for 'https://github.com': foo
Password for 'https://foo@github.com':
gitがhttp(s)接続を処理する方法の使用方法は、/usr/lib/git-core/git-remote-https
ここでstraceを参照できます。
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
この後、gitは正常に動作し始めました
以前、リポジトリにアクセスする権限が与えられなかったとき、SSH公開キーをgitlabに追加していました。リポジトリにアクセスしてgo modベンダーを実行できた時点で、あなたと同じ問題が発生しました。(おそらくキャッシュのため)
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キーを削除することにし、ユーザー名とパスワードを入力するターミナルプロンプトが表示されます。その後、すべてが大丈夫です!
CreativeMagicソリューションを試すと、資格情報の問題が確認されます。
プロンプト>>>「https://github.com」のユーザー名
だから、私は私の元のURLを
git remote set-url --add origin http://github.com/user/repo
そして
git push --set-upstream origin master
git config --global user.name "Your Name Here"