Saya mengalami masalah berikut saat mencoba menarik kode menggunakan git Bash di Windows:
fatal: could not read Username for 'https://github.com': No such file or directory
Saya sudah mencoba menerapkan solusi yang diterima yang disediakan di sini:
... tapi masalahnya tetap ada. Setelah menambahkan / menghapus asal saya masih mendapatkan kesalahan yang sama.
git config --global user.name "Your Name Here"
Jawaban:
Ikuti langkah-langkah untuk menyiapkan kunci SSH di sini: https://help.github.com/articles/generating-ssh-keys
ATAU
sumber
git remote set-url origin https://{username}:{password}@github.com/...
git remote -v
error: cannot spawn sh: No such file or directory
pesan ...Saya menghadapi masalah yang sama persis. Masalah ini terjadi ketika saya mengkloning menggunakan URL HTTPS dan kemudian mencoba mendorong perubahan menggunakan Git Bash di Windows menggunakan:
Namun, ketika saya menggunakan URL SSH untuk mengkloning, masalah ini tidak terjadi:
sumber
python:3.7-slim
. Jadi ini tidak terkait dengan Windows.Bagi saya tidak ada yang berhasil dari yang disarankan di atas, saya menggunakan
git pull
dari skrip shell jenkins dan ternyata itu mengambil nama pengguna yang salah. Saya menghabiskan waktu lama sebelum saya menemukan cara untuk memperbaikinya tanpa beralih ke SSH.Di folder pengguna, buat file .gitconfig (jika Anda belum memilikinya) dan letakkan kredensial Anda dalam format berikut:, info
https://user:[email protected]
selengkapnya . Setelah file .gitconfig Anda menautkan ke kredensial tersebut, dalam kasus saya itu adalah:[credential] helper = store --file /Users/admin/.git-credentials
Sekarang git akan selalu menggunakan kredensial tersebut apa pun yang terjadi. Saya berharap ini akan membantu seseorang, seperti itu membantu saya.
sumber
[credential] helper = store --file /..../.git-credentials
ke.git/config
dalam direktori kerja sayaPerhatikan bahwa jika Anda mendapatkan kesalahan ini:
Kemudian Anda perlu memperbarui Git Anda ke versi
2.16
atau yang lebih baru.sumber
Saya menemukan jawaban saya di sini :
edit
~/.gitconfig
dan tambahkan berikut ini:Meskipun ini menyelesaikan masalah yang berbeda, kode kesalahannya sama ...
sumber
Jika Anda ingin terus menggunakan https, bukan ssh, dan hindari mengetikkan nama pengguna dan sandi Anda untuk alasan keamanan.
Anda juga dapat mencoba token Github OAuth , lalu Anda dapat melakukan
git config remote.origin.url 'https://{token}@github.com/{username}/{project}.git'
ataugit remote add origin 'https://{token}@github.com/{username}/{project}.git'
Ini berhasil untuk saya!
sumber
Kesalahan ini juga dapat terjadi saat mencoba menggandakan URL HTTP yang tidak valid. Misalnya, ini adalah kesalahan yang saya dapatkan saat mencoba mengkloning URL GitHub yang beberapa karakternya tidak aktif:
Ini sebenarnya terjadi di dalam Emacs, jadi kesalahan di Emacs terlihat seperti ini:
Jadi, alih-alih kesalahan membantu yang mengatakan bahwa tidak ada repo seperti itu di URL itu, itu memberi saya itu, mengirim saya dengan angsa liar sampai akhirnya saya menyadari bahwa URL itu salah.
Ini dengan git versi 2.7.4.
Saya memposting ini di sini karena itu terjadi pada saya sebulan yang lalu dan lagi sekarang, mengirim saya pada pengejaran angsa liar yang sama lagi. > :(
sumber
Jawaban singkat:
Abaikan tiga baris pertama jika ini bukan repositori baru.
Deskripsi lebih panjang:
Baru saja mengalami masalah yang sama, karena bukan dari jawaban di atas yang membantu saya, saya telah memutuskan untuk memposting solusi yang berhasil untuk saya ini.
Beberapa Catatan:
Sebagai alat baris perintah, saya menggunakan GitShell (untuk Windows, saya menggunakan Terminal.app di Mac).
GitShell adalah alat GitHub resmi, dapat diunduh dari https://windows.github.com/
Semoga ini bisa membantu siapa saja yang memiliki masalah yang sama.
sumber
Saya memperbaikinya dengan menginstal versi Git yang lebih baru. Versi yang saya instal adalah 2.10.2 dari https://git-scm.com . Lihat posting terakhir di sini: https://www.bountysource.com/issues/31602800-git-fails-to-authenticate-access-to-private-repository-over-https
Dengan Git Bash yang lebih baru, jendela pengelola kredensial akan muncul dan Anda dapat memasukkan nama pengguna dan kata sandi Anda, dan berhasil!
sumber
Ini adalah masalah dengan kredensial yang Anda simpan di cache kredensial sistem. Anda mungkin telah menyetel variabel konfigurasi 'credential.helper' ke wincred atau winstore dan gagal untuk menghapusnya. Jika Anda memulai Panel Kontrol dan meluncurkan applet Pengelola Kredensial, cari item di bagian kredensial umum berlabel "git: https://github.com ". Jika Anda menghapus ini, maka akan dibuat ulang lain kali tetapi utilitas pembantu kredensial akan meminta kredensial baru Anda.
sumber
git config --global -l | grep credential
. Jika ada output apa pun, itu akan menjadi utilitas yang mencoba memberi makan kredensial Anda yang tersimpan ke server saat Anda mendorong.git remote add origin https://github.com/username/Hello-World.git
yangusername
yang diikat ke link di repo git ini membuat masalah, saya tidak berpikir username saya SENDIRI membuat masalah di sini. Sejauh yang saya tahu Palungan kredensial membantu mengelola kredensial pribadi, bukan kredensial repositori.Ganti url jarak jauh Anda seperti ini:
sumber
TL; DR: periksa apakah Anda dapat membaca / menulis ke
/dev/tty
. Jika tidak dan Anda pernahsu
membuka shell, periksa apakah Anda telah menggunakannya dengan benar.Saya menghadapi masalah yang sama tetapi di Linux dan saya telah menemukan masalahnya. Saya tidak menyimpan kredensial saya, jadi saya selalu memasukkannya saat diminta:
Cara git menangani koneksi http (s) digunakan,
/usr/lib/git-core/git-remote-https
Anda dapat melihat strace di sini:Jadi saya mencoba meneleponnya secara langsung:
dan hasilnya:
Dan inilah dia:
git-remote-https
mencoba membaca kredensial melalui/dev/tty
jadi saya menguji apakah itu berfungsi:Tetapi di terminal lain:
Saya tahu saya beralih ke pengguna ini menggunakan
su
jadi saya keluar dari shell untuk melihat bagaimana dan menemukan saya menggunakan perintahsu danman -
jadi saya mengujinya lagi:Saya mungkin mengabaikan pesan tersebut dan terus bekerja tetapi inilah alasannya. Ketika saya beralih menggunakan yang benar
su - danman
semuanya bekerja dengan baik:Setelah ini, git mulai bekerja dengan benar
sumber
Bagi mereka yang mendapatkan kesalahan ini dalam pipeline Jenkins, itu bisa diperbaiki dengan menggunakan plugin Agen SSH . Kemudian bungkus perintah git Anda dengan sesuatu seperti ini:
sumber
mencoba solusi CreativeMagic, masalah kredensial dikonfirmasi:
prompt >>> Nama pengguna untuk ' https://github.com '
Jadi, saya mengubah url asal saya dengan
dan
sumber
Coba gunakan shell Windows normal seperti CMD.
sumber
Sebelumnya ketika saya tidak diberi izin untuk mengakses repo, saya juga menambahkan kunci pub SSH ke gitlab. Pada titik saya dapat mengakses repo dan menjalankan vendor mod go, masalah yang sama seperti Anda terjadi. (mungkin karena cache)
Setelah beberapa saat mencoba, saya memutuskan untuk menghapus kunci SSH dan terminal meminta mengisi nama pengguna dan kata sandi. Semuanya baik-baik saja!
sumber
Apa yang berhasil bagi saya adalah mengubah akses repositori Git dari pribadi menjadi publik.
sumber