私のブラウザからGithub UIを使用してプライベートリポジトリexamples/myprivaterepoを作成しました。
それから私は(デスクトップ上の)私のgoディレクトリに行き、それをクローンしました:
$ cd $GOPATH
$ go get github.com/examplesite/myprivaterepo
ここまでは順調ですね。ファイルscheduler.goを作成し、リポジトリに追加してプッシュしました。
$ vim scheduler.go
$ git add scheduler.go
$ git commit
$ git Push
Everythngは大丈夫です。しかし、私がきれいなラップトップに行き、レポをクローンしようとしたとき、私はエラーを得ました:
# Now on laptop, which doesn't yet know about the repo
$ cd $GOPATH
$ go get github.com/examplesite/myprivaterepo
# At this point it should ask for my user ID and password ,right? But it doesn't.
# Instead, this error occurs:
cd .; git clone https://github.com/examplesite/myprivaterepo /Users/tom/go/src/github.com/examplesite/myprivaterepo
Cloning into '/Users/tom/go/src/github.com/examplesite/myprivaterepo'...
fatal: could not read Username for 'https://github.com': terminal prompts disabled
package github.com/examplesite/myprivaterepo: exit status 128
ラップトップが自分のレポを嫌っているのはなぜでしょうか。ありがとう。
go getはデフォルトで "terminal prompt"を無効にします。これはgitの環境変数を設定することで変更できます。
env GIT_TERMINAL_Prompt=1 go get github.com/examplesite/myprivaterepo
私はこれが非常に有用であると思った、そしてそれは私の問題を解決した。このコマンドはあなたの2FAがそのことをすることを可能にします(そしてあなたのユーザー名とパスワードを入力する手間を省きます):
git config --global --add url."[email protected]:".insteadOf "https://github.com/"
出典: http://albertech.blogspot.com/2016/11/fix-git-error-could-not-read-username.html
2FAを使用していない場合でも、SSHを使用できます。これは機能します。
編集: slatunje で示唆されているように--add
フラグを追加しました。
1st - go get
はコマンドラインでの認証を拒否します。それで、あなたはgitで信任状をキャッシュする必要があります。 osxを使用しているので、osxkeychain認証情報ヘルパーを使用できます。
2nd私には2FAが有効になっているので、自分のパスワードを使用して認証することはできませんでした。代わりに、パスワードの代わりに使用する個人用アクセストークンを生成する必要がありました。
git clone https://github.com/user/private_repo
をキャッシュするようにし、github.comのユーザー名をusernameに、生成されたパーソナルアクセストークンをpasswordに使用しました。クレジットがキャッシュされていることを確認するために複製されたレポと再テストを削除しました - git clone https://github.com/user/private_repo
と今回はクレジットを要求されませんでした。
go get
を本当に速く動かしたい、そしてあなたの仕事に沿って動いてほしいだけなら...
GIT_TERMINAL_Prompt=1
をエクスポートするだけです
$ export GIT_TERMINAL_Prompt=1
$ go get [whatever]
それは今あなたにユーザーのためのプロンプトを出します/あなたのシェルセッションの残りのためにパスします。より恒久的な解決策として、これを上記のように.profile
またはsetup git
に入れてください。
このオプションを使用してgitconfigを構成すると、後でGitHubの他のリポジトリを複製する際に問題が発生します
git config --global --add url. "[email protected]". Instead, "https://github.com/"
代わりに、このオプションを使用することをお勧めします
echo "export GIT_TERMINAL_Prompt=1" >> ~/.bashrc || ~/.zshrc
また、プライベートリポジトリからアクセストークンを生成することを忘れないでください。パスワードの入力を求められたら、アクセストークンを貼り付けます。ハッピークローン:)
Windowsで同じエラーが発生しました。「エラー:プロンプトスクリプトの実行に失敗しました(終了コード1)致命的: ' https://github.com 'のユーザー名を読み取れませんでした」ログインダイアログを使用してgithubにアクセスします。ダイアログをキャンセルすると、gitはコマンドラインでログインとパスワードを要求し、正常に機能しました。