Saya membuat contoh pribadi repo / myprivaterepo menggunakan Github UI dari browser saya.
Lalu saya pergi ke direktori go saya (di desktop) dan mengkloningnya:
$ cd $GOPATH
$ go get github.com/examplesite/myprivaterepo
Sejauh ini baik. Membuat file scheduler.go, ditambahkan ke repo, dan didorong.
$ vim scheduler.go
$ git add scheduler.go
$ git commit
$ git push
Semuanya baik-baik saja. Tetapi ketika saya pergi ke laptop bersih dan mencoba mengkloning repo, saya mendapat kesalahan:
# 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
Mengapa laptop saya membenci repo saya sendiri dan bagaimana saya bisa mendapatkannya untuk menerima nasibnya? Terima kasih.
go
kesalahan,git
mengembalikan "terminal prompt dinonaktifkan". Bisakah Anda menjalankangit clone https://github.com/examplesite/myprivaterepo
di laptop Anda?https://github.com/
jika jalur impor tidak ada. Proses git harus dapat meminta nama pengguna / kata sandi, sehingga harus ada sesuatu yang berbeda dalam konfigurasi laptop - shell yang berbeda, berbeda.Jawaban:
go get menonaktifkan "terminal prompt" secara default. Ini dapat diubah dengan menyetel variabel lingkungan dari git:
sumber
Saya menemukan ini sangat membantu, dan itu memecahkan masalah saya. Perintah ini akan memungkinkan 2FA Anda untuk melakukan hal tersebut (dan menyelamatkan Anda dari kesulitan memasukkan nama pengguna dan kata sandi Anda):
Sumber: http://albertech.blogspot.com/2016/11/fix-git-error-could-not-read-username.html
Jika Anda tidak menggunakan 2FA, Anda masih bisa menggunakan SSH dan ini akan berhasil.
Sunting: menambahkan
--add
bendera seperti yang disarankan oleh slatunje .sumber
git config --global --add url."[email protected]:".insteadOf "https://github.com/"
[email protected]: Permission denied (publickey). fatal: Could not read from remote repository.
.1 -
go get
akan menolak untuk mengotentikasi pada baris perintah. Jadi, Anda perlu cache kredensial di git. Karena saya menggunakan osx, saya bisa menggunakan kredensial osxkeychain.2nd Bagi saya, saya telah mengaktifkan 2FA dan karenanya tidak dapat menggunakan kata sandi saya untuk auth. Alih-alih, saya harus membuat token akses pribadi untuk digunakan sebagai ganti kata sandi.
git clone https://github.com/user/private_repo
men -cache kata sandi dan menggunakan nama pengguna github.com Anda untuk nama pengguna dan token akses pribadi yang dihasilkan untuk kata sandi.Menghapus repo yang baru dikloning dan menguji ulang untuk memastikan kredibilitas di-cache -
git clone https://github.com/user/private_repo
dan kali ini tidak meminta kredibilitas.sumber
git clone
salah satu dari repo saya sendiri yang sudah ada (sebenarnya publik), diminta untuk sayausername
, masukkan nama pengguna GitHub saya, kemudian dimasukkan ke dalam token yang dihasilkan untukpassword
- menghapus repo yang dikloning, lalu mengulanggo get
perintah dan semuanya baik-baik saja - terima kasih! (OSX di sini juga)Jika Anda hanya ingin
go get
bekerja sangat cepat, dan bergerak bersama pekerjaan Anda ...Ekspor saja
GIT_TERMINAL_PROMPT=1
Sekarang akan meminta Anda untuk pengguna / pass untuk sisa sesi shell Anda. Letakkan ini di
.profile
pengaturan Andagit
seperti di atas untuk solusi yang lebih permanen.sumber
Ia mengeluh karena harus digunakan
ssh
alih-alihhttps
tetapi git Anda masih dikonfigurasi dengan https. jadi pada dasarnya yang lain disebutkan sebelumnya Anda perlu baik memungkinkan petunjuknya atau mengkonfigurasi git untuk menggunakanssh
bukanhttps
. cara sederhana untuk melakukan ini dengan menjalankan yang berikut:atau jika Anda sudah menggunakan
ssh
dengangit
di mesin Anda, Anda dapat dengan aman mengedit~/.gitconfig
dan menambahkan baris berikut di bagian paling bawahCatatan: Ini mencakup semua SVC, kontrol versi sumber, yang tergantung pada apa yang Anda gunakan, github, gitlab, bitbucket)
Jika Anda ingin menjaga agar kata sandi dinonaktifkan, Anda perlu menyimpan kata sandi. Untuk informasi lebih lanjut tentang cara men-cache kata sandi github Anda di mac, windows atau linux, silakan kunjungi halaman ini .
Untuk informasi lebih lanjut tentang cara menambahkan ssh ke akun github Anda, silakan kunjungi halaman ini .
Selain itu, yang lebih penting, jika ini adalah repositori pribadi untuk perusahaan atau untuk Anda sendiri, Anda mungkin perlu melewati menggunakan proksi atau basis data checksum untuk repo tersebut agar tidak memaparkannya kepada publik.
Untuk melakukan ini, Anda perlu mengatur
GOPRIVATE
variabel lingkungan yang mengontrol modul mana yang dianggap perintah pribadi (tidak tersedia untuk umum) dan karenanya TIDAK boleh menggunakan database proxy atau checksum.Variabelnya adalah daftar pola yang dipisahkan koma (sintaks yang sama dengan Go
path.Match
) dari awalan jalur modul. Sebagai contoh,Atau
Satu hal terakhir yang tidak lupa untuk disebutkan, Anda masih dapat mengonfigurasi
go get
untuk mengautentikasi dan mengambil alihhttps
, yang perlu Anda lakukan adalah menambahkan baris berikut ke$HOME/.netrc
Saya harap ini membantu komunitas dan menghemat waktu orang lain untuk menyelesaikan masalah yang dijelaskan dengan cepat. jangan ragu untuk meninggalkan komentar jika Anda ingin lebih banyak dukungan atau bantuan.
sumber
GOPRIVATE
(go env -w GOPRIVATE=github.com/mycompany/*
) adalah satu-satunya hal yang berhasil untuk saya. Saya mungkin menyarankan menempatkan itu di bawah judulnya sendiri atau bahkan dalam jawabannya sendiri untuk menyoroti sedikit lebih banyak.Jika Anda mengonfigurasi gitconfig Anda dengan opsi ini, nanti Anda akan memiliki masalah dalam mengkloning repo GitHub lainnya.
Sebagai gantinya, saya sarankan Anda menggunakan opsi ini
dan jangan lupa untuk membuat token akses dari repositori pribadi Anda. Saat diminta memasukkan kata sandi Anda, cukup tempel token akses. Selamat mengkloning :)
sumber
Saya mempunyai masalah yang sama di windows "error: gagal menjalankan skrip prompt (kode keluar 1) fatal: tidak dapat membaca Nama Pengguna untuk ' https://github.com ': No error" mencoba masuk ke github melalui dialog login. Ketika saya membatalkan dialog git meminta saya untuk login dan kata sandi di baris perintah dan itu berfungsi dengan baik.
sumber