Dapatkan bantuan kredensial - perbarui kata sandi

198

Saya saat ini menggunakan GitHub melalui HTTPS dan menginstal versi terbaru Git (1.9.0) bersama dengan pembantu kredensial Git pada Windows 7.

Saat mengatur lingkungan saya, saya memberi tahu git-kredensial untuk secara permanen mengingat nama pengguna dan kata sandi saya.

Saya baru-baru ini memperbarui kata sandi GitHub saya melalui situs web dan sekarang saya tidak lagi bisa mendorong / menarik / mengambil, dll.

Bagaimana cara saya memperbarui kata sandi pada bantuan git-credentials pada Windows 7?

Andrew Thomson
sumber
6
Sederhana, gunakan "git config --global credential.helper wincred" dan masukkan userID dan kata sandi; maka ini akan disimpan untuk Anda, lain kali Anda mengubah kata sandi Anda, jalankan kembali perintah di atas.
Akshay Lokur
@ AkshayLokur ini adalah jawaban yang benar.
Ravimallya
Jika semuanya gagal, dan Anda menggunakan TortoiseGit, Anda mungkin ingin mencoba tindakan melalui itu. Misalnya penarikan atau pengambilan menggunakan Tortoise akan meminta kata sandi, yang kemudian dapat Anda perbarui. Ini tampaknya kemudian menimpa cache Git Bash, dan Anda dapat menggunakan bash sekali lagi.
Paul F. Wood

Jawaban:

280

Tidak satu pun dari jawaban ini yang berhasil untuk masalah kredensial Git saya. Inilah yang berhasil jika ada yang membutuhkannya (Saya menggunakan Git 1.9 pada Windows 8.1).

Untuk memperbarui kredensial Anda, buka Control PanelCredential ManagerKredensial Generik . Temukan kredensial yang terkait dengan akun Git Anda dan edit untuk menggunakan kata sandi yang diperbarui.

Referensi: Cara memperbarui kredensial Git Anda di Windows

Perhatikan bahwa untuk menggunakan Windows Credential Manager untuk Git Anda perlu mengonfigurasi kredensial kredensial seperti:

git config --global credential.helper wincred

Jika Anda memiliki beberapa akun GitHub yang Anda gunakan untuk repositori yang berbeda, maka Anda harus mengonfigurasi kredensial untuk menggunakan jalur repositori lengkap (bukan hanya domain, yang merupakan default):

git config --global credential.useHttpPath true
xgo
sumber
21
Ini harus menjadi jawaban yang diterima jika git config --listmengandung credential.helper=wincred.
MF
6
Bekerja untuk saya - terima kasih - dan belajar tentang manajer kredensial Windows juga.
rwalter
Ini. mengubah kata sandi tidak berhasil tetapi saya menghapus kredensial dan kemudian git push meminta kredensial lagi dan itu berhasil.
BiAiB
2
Saya pikir itu berfungsi untuk jendela 8.1 dan jendela 10 juga. Dalam kasus saya: window 10 Pro, git 2.17
Thinhbk
2
Bagi siapa pun yang (seperti saya) menghapus kredensial tersimpan berharap untuk prompt lain, tetapi prompt tidak muncul. Dari Manajer Kredensial, Anda dapat ADDa Generic Credentialdengan alamat git:http://yourserver:port/. Http atau Https sama, yang penting adalah git:di awal.
A. Chiesa
101

Pada upaya pertama saya untuk mengambil Git setelah perubahan kata sandi, saya diberi tahu bahwa kombinasi nama pengguna / kata sandi saya tidak valid. Ini benar karena penolong git-credential telah men-cache nilai lama saya.

Namun, saya mencoba mengambil git lain setelah memulai ulang terminal / command-prompt saya dan kali ini kredensial pembantu meminta saya untuk memasukkan nama pengguna dan kata sandi GitHub saya.

Saya curiga permintaan Git gagal yang diambil dalam kombinasi dengan memulai kembali terminal / command-prompt saya menyelesaikan ini untuk saya.

Saya harap jawaban ini membantu orang lain di posisi yang sama di masa depan!

Andrew Thomson
sumber
2
Cukup restart Git Bash, itu akan meminta dialog untuk memasukkan nama pengguna / kata sandi baru.
Quan
2
Sebagai catatan, saya bisa mengatasinya dengan melakukan tarikan / pengambilan lain tanpa memulai kembali sesi Powershell saya pada Windows 7. Windows meminta saya untuk kredit baru saya pada upaya kedua.
Bender the Greatest
me-restart konsol / aplikasi membuat "wincred" bekerja untuk saya. (Saya harus me-restart konsol saya dan "Atom" dan semuanya bekerja dengan baik)
low_rents
3
Memasukkan perintah git apa pun yang membutuhkan kredensial untuk kedua kalinya tampaknya melakukan ini, tidak hanya git fetch, itu juga bekerja pada detik git clone.
navigator_
Terima kasih banyak! Setiap kali saya mengubah kata sandi domain saya, saya harus ingat cara memperbarui kredensial saya. Ambil Ambil - Ini berhasil untuk saya!
Alexander Brattsev
74

Solusi menggunakan baris perintah untuk Windows, Linux, dan MacOS

Jika Anda telah memperbarui kata sandi GitHub di server GitHub, dalam upaya pertama git fetch/pull/pushperintah itu menghasilkan otentikasi gagal pesan .

Jalankan git fetch/pull/pushperintah yang sama untuk kedua kalinya dan meminta kredensial (nama pengguna dan kata sandi). Masukkan nama pengguna dan kata sandi baru yang diperbarui dari server GitHub dan login akan berhasil.

Bahkan saya punya masalah ini, dan saya melakukan langkah-langkah di atas dan selesai !!

Farooque
sumber
@ Vincent: apa masalah yang Anda dapatkan ??
Farooque
2
Saya hanya mendapatkan pengulangan jarak jauh: Nama pengguna atau kata sandi salah. fatal: Otentikasi gagal untuk
RichMeister
1
@RichMeister: Dari kedua kalinya ia akan meminta nama pengguna / kata sandi. Cukup berikan nama pengguna / kata sandi baru Anda.
Farooque
3
Bekerja untuk saya di MacOS dengan kredensial cache setelah perubahan kata sandi. Pertama kali mendapatkan 'Otentikasi Gagal untuk ...'. Mencoba lagi dan diminta untuk kredensial, masukkan kata sandi userid dan baru, dan sekarang bekerja lagi
Kevin Hooke
1
Ini adalah jawaban terbaik / termudah
Ryan Boken
74

Jika Anda adalah pengguna Windows, Anda dapat menghapus atau memperbarui kredensial Anda di Credential Manager.

Di Windows 10, buka jalur di bawah ini:

Panel KontrolSemua Item Panel KontrolManajer Kredensial

Atau cari "kredensial manajer" di bagian "Cari Windows" di menu Mulai.

Kemudian dari Manajer Kredensial, pilih "Kredensial Windows".

Credential Manager akan menampilkan banyak item termasuk pandangan Anda dan repositori GitHub di bawah "Kredensial generik"

Anda klik pada panah drop-down di sisi kanan Git Anda: dan itu akan menampilkan opsi untuk mengedit dan menghapus. Jika Anda menghapus, popup kredensial akan datang waktu berikutnya ketika Anda mengambil atau menarik. Atau Anda dapat langsung mengedit kredensial di sana.

Vins
sumber
3
Setelah mencoba opsi lain hanya yang ini bekerja untuk saya. Saya menemukan info di sini: cmatskas.com/how-to-update-your-git-credentials-on-windows
neomib
Catatan: kontrol ini BUKAN DIAKSES MELALUI METRO UI "CONTROL PANEL"! Anda harus menjalankan control.exesecara manual untuk melihat kontrol ini.
AnrDaemon
Ini sangat membantu! Saya bahkan tidak tahu bahwa alat ini ada.
rahang
35

Pertama temukan versi yang Anda gunakan dengan perintah Git git --version. Jika Anda memiliki versi yang lebih baru dari 1.7.10, maka cukup gunakan perintah ini:

git config --global credential.helper wincred

Lalu lakukan git fetch , lalu diminta untuk memperbarui kata sandi.

Sekarang, itu tidak akan meminta kata sandi beberapa kali di Git.

Sireesh Yarlagadda
sumber
7
Ini tidak menjawab pertanyaan
disklosr
2
@ Disklosr Ya. Ini memaksa Git untuk meminta kata sandi yang diperbarui pada saat Anda melakukan tindakan jarak jauh.
Nilpo
1
@Nilpo Apa itu "aksi jarak jauh"? Tidakkah seharusnya "git push origin xxx" menjadi aksi jarak jauh? Itu tidak melakukannya. alih-alih, saya mendapatkan remote: nama pengguna atau kata sandi salah.
RichMeister
1
Ini berhasil untuk saya. Setelah menjalankan perintah ini. Lakukan "git fetch", Anda akan diminta kredensial, berikan.
Alex
Mengapa --global? Tidakkah saya mengambil risiko untuk diminta kembali untuk semua repositori saya alih-alih hanya yang terpengaruh?
Thomas Weller
29

Sepertinya bagi saya bahwa jawaban di sini sudah usang. Bagi saya di bawah Windows 10 dan Git 2.15.0 ini berhasil:

git credential reject
protocol=https
host=github.com
<Empty line here>

Dan kemudian untuk menetapkan nama pengguna & kata sandi baru:

git credential fill
protocol=https
host=github.com
<empty line here>

Setelah ini, jika kredensial sekarang bekerja pada host target yang diinginkan, kita harus menggunakan git credential approve-seperti yang disebutkan dalam penggunaan khas kredensial Git (langkah 4) - untuk memberi tahu pemberi kredensial untuk menandai kredensial yang telah disetujui dan menggunakannya kembali di koneksi yang akan datang.

atavio
sumber
1
Bagi saya, melakukan apa adanya git credential fill, itu secara otomatis menghasilkan kata sandi yang salah; Saya harus mengatur yang baru secara manual dengan perintah ini agar berfungsi; bagaimanapun, terima kasih, jawaban ini membantu saya dengan masalah ini!
Emerson Cardoso
Suara positif ke atas! Berapa banyak waktu yang terbuang untuk membaca solusi usang. Sebenarnya Git Credential Manager yang harus disalahkan di sini saya pikir karena harus melalui rasa sakit ketika passswords domain diputar.
Janis Veinbergs
1
setelah itu fill, bukankah sebaiknya kita gunakan approve?
Z. Khullah
Di mesin saya git credential rejecttidak pernah selesai
Thomas Weller
@ ThomasWeller Anda harus menekan enter untuk meninggalkan garis kosong di sana, lalu selesai.
atavio
19

FWIW, saya tersandung masalah yang sama ini (dan bos saya juga, jadi semakin intens).

Solusi instan adalah menghapus atau memperbaiki entri Git Anda di Windows Credential Manager. Anda mungkin mengalami kesulitan menemukannya dalam versi Windows Anda yang terlokalisasi, tetapi untungnya Anda dapat memulainya dari dialog Windows+ Rrun lama yang baik dengan control keymgr.dllatau control /name Microsoft.CredentialManager(atau rundll32.exe keymgr.dll, KRShowKeyMgrjika Anda lebih suka tampilan klasik). Atau letakkan ini dalam file batch untuk kolega Anda:cmdkey /delete:git:http://your.git.server.company.com .

Di Git Credential Manager dari Microsoft, ini adalah masalah yang diketahui yang dapat diperbaiki segera pada awal 2019 (jadi jangan menahan nafas).

Jakob
sumber
1
Memahami Windows Credential Manager dengan menggunakan Control Panel UI itu bagus tetapi akan melelahkan ketika Anda harus memperbarui pada semua mesin. Perintah tunggal ini hebat karena mencapai hal yang sama (menghilangkan kredensial tidak valid yang ada) yang memaksa git untuk meminta kredensial lagi pada saat dibutuhkan. Pada Windows Server 2016, perintah sintaks untuk menghapus kredensial sedikit berbeda: cmdkey /delete:git:https://your.git.server.company.com
Rudimenter
/delete{:<TargetName>}adalah sintaks resmi , tetapi saya menemukan bahwa pintasan /del <TargetName>juga berfungsi, setidaknya di Windows 10 (1803).
Jakob
ide bagus untuk alias! delpw = !cmdkey /delete:git:$(git remote get-url $1). Penggunaan: git delpw origin(ps: / del tidak bekerja di sini, Menangkan 10 juga)
Z. Khullah
6

Hanya cddi direktori tempat Anda menginstal git-credential-winstore. Jika Anda tidak tahu di mana, jalankan saja ini di Git Bash:

cat ~/.gitconfig

Seharusnya mencetak sesuatu yang tampak seperti:

[credential]
    helper = !'C:\\ProgramFile\\GitCredStore\\git-credential-winstore.exe'

Dalam hal ini, repositori Anda adalah C: \ ProgramFile \ GitCredStore. Setelah Anda berada di dalam folder ini menggunakan Git Bash atau perintah Windows, cukup ketik:

git-credential-winstore.exe erase
host=github.com
protocol=https

Jangan lupa untuk menekan Enterdua kali setelahnya protocol=https.

Luc DUZAN
sumber
3

Tidak ada solusi saat ini yang bekerja untuk saya dengan git bash 2.26.2. Bagaimanapun, ini akan berfungsi jika Anda menggunakan pengelola kredensial windows.

Salah satu masalah adalah menjalankan pengelola kredensial windows untuk pengguna yang dicatat. Dalam kasus saya misalnya, saya menjalankan git bash dengan klik kanan, jalankan sebagai admin. Oleh karena itu, kredensial tersimpan saya ada di pengelola kredensial yang tidak dapat saya akses dengan GUI windows jika saya tidak masuk ke windows sebagai admin.

Untuk memperbaikinya:

  • Buka cmd sebagai admin (atau pengguna apa pun yang Anda jalankan dengan bash bersama)
  • Pergi ke windows / system32
  • Jenis cmdkey /list. Kredensial lama Anda akan muncul di sini, dengan bagian yang bertuliskan ... target: xxx ...
  • Ketik cmdkey /delete:xxx, di mana xxx adalah target dari baris sebelumnya

Ini akan mengkonfirmasi Anda bahwa kredensial Anda telah dihapus. Lain kali Anda melakukan operasi di git bash yang memerlukan otentikasi, sembulan akan meminta kredensial Anda.

Jorge.V
sumber