Hapus kredensial dari Git

623

Saya bekerja dengan beberapa repositori, tetapi akhir-akhir ini saya hanya bekerja di internal kami dan semuanya hebat.

Hari ini saya harus komit dan mendorong kode ke yang lain, tapi saya mengalami beberapa masalah.

$ git push appharbor master
error: The requested URL returned error: 403 while accessing https://[email protected]/mitivo.git/info/refs?service=git-receive-pack
fatal: HTTP request failed

Tidak ada yang bisa saya lakukan, yang akan membawa entri kata sandi lagi.

Bagaimana saya bisa mereset kredensial di sistem saya sehingga Git akan meminta saya kata sandi repositori itu?

Saya telah mencoba:

  • git config --global --unset core.askpass

untuk menghapus kata sandi

  • git config credential.helper 'cache --timeout=1'

untuk menghindari cache kredensial ...

Tampaknya tidak ada yang berhasil; apakah ada yang punya ide yang lebih baik?

balexandre
sumber
Apakah Anda punya ~/.netrcfile?
robinst
2
@robinst ini mesin windows, dan saya tidak dapat menemukan file itu, bahkan dari Git Bash ...
balexandre
@balexandre untuk mesin Windows, saya lebih suka menggunakan helper kredensial baru (git 1.8.3) netrc, yang akan menyimpan banyak kredensial dalam file terenkripsi . Ini lebih baik daripada memasukkan kata sandi Anda setiap kali untuk setiap sesi, karena cache hanya "cache" kata sandi untuk waktu tertentu. Lihat contoh lengkap di sini .
VonC
Saya tidak punya .netrc. Saya memiliki file di ~ (C: \ Users \ Myself) bernama .git-credentials, tetapi menghapusnya tidak berhasil, saya masih masuk ke Git Shell. Juga, Manajer Kredensial Panel Kontrol tampaknya tidak menyimpan apa pun. File konfigurasi Git lokal dan global tampaknya ok. Saya mewarisi stasiun kerja saya dari seorang karyawan yang pergi, jadi bisa jadi dia mengatur beberapa mekanisme penyimpanan kredensial yang tidak lazim sehingga saya tidak tahu cara mematikannya. Saya harap perilaku ini BUKAN default dari Git Windows. Di Mac kredensial caching adalah default tetapi setidaknya muncul di Akses Keychain.
damix911
Sebuah jawaban yang lebih lengkap yang juga berfungsi di linux, windows dan Mac OS X lihat stackoverflow.com/a/39944557/3906760
MrTux

Jawaban:

654

Jika masalah ini muncul pada mesin Windows, lakukan hal berikut.

  • Pergi ke Manajer Kredensial
  • Pergi ke Kredensial Windows
  • Hapus entri di bawah Kredensial Generik
  • Coba hubungkan lagi. Kali ini, itu akan meminta Anda untuk nama pengguna dan kata sandi yang benar.

Pergi ke Manajer Kredensial

Pergi ke Kredensial Windows dan Hapus entri di bawah Kredensial Generik

Venkataramana Madugula
sumber
4
Ini hanya relevan jika Anda credential.helper=manager. Untuk menguji jenis ini git config --list. Jika diatur ke storemaka kredensial tidak disimpan di toko kredensial tetapi disimpan tanpa enkripsi.
Liam
3
Saya hanya perlu menghapus kredensial yang bernama git:https://github.comdan saya diminta untuk memasukkan nama pengguna saya / lulus saat saya kloning repo menggunakan PyCharm. Saya memiliki lebih dari satu akun github dan yang salah di-cache.
dotcomly
22
Jika seseorang mencari ini di mesin lokal Jerman, itu "Anmeldeinformationsverwaltung" di jalur Systemsteuerung\Alle Systemsteuerungselemente\Anmeldeinformationsverwaltung.
davidenke
3
Atau Anda dapat mengubah pengguna / pass di Credential Manager. Itu juga berhasil bagi saya
Daniel Lerps
Menghapus kredensial memecahkan 403kesalahan saya melalui Bitbucket.
Eido95
673

Cache kredensial Git menjalankan proses daemon yang menyimpan kredensial Anda di memori dan membagikannya saat diminta. Jadi membunuh cache git-credential-cache Anda - proses daemon membuang semua ini dan mengakibatkan Anda diminta kembali memasukkan kata sandi jika terus menggunakan ini sebagai opsi cache.helper.

Anda juga bisa menonaktifkan penggunaan cache kredensial Git menggunakan git config --global --unset credential.helper . Kemudian setel ulang ini, dan Anda akan terus memiliki kredensial yang di-cache tersedia untuk repositori lain (jika ada). Anda mungkin juga perlu melakukannya git config --system --unset credential.helperjika ini telah diatur dalam file konfigurasi sistem (misalnya, Git untuk Windows 2).

Pada Windows Anda mungkin lebih baik menggunakan bantuan manajer ( git config --global credential.helper manager). Ini menyimpan kredensial Anda di toko kredensial Windows yang memiliki antarmuka Panel Kontrol tempat Anda dapat menghapus atau mengedit kredensial yang disimpan. Dengan toko ini, detail Anda dijamin oleh login Windows Anda dan dapat bertahan selama beberapa sesi. The manager pembantu termasuk dalam Git untuk Windows 2.x telah menggantikan sebelumnya wincred pembantu yang ditambahkan dalam Git untuk Windows 1.8.1.1. Pembantu serupa yang disebut winstore juga tersedia online dan digunakan dengan GitExtensions karena menawarkan antarmuka yang lebih didorong GUI. The manager helper menawarkan antarmuka GUI sama seperti WinStore .

Ekstrak dari halaman dukungan Windows 10 yang merinci manajer kredensial Windows:

Untuk membuka Credential Manager, ketik "credential manager" di kotak pencarian di taskbar dan pilih Credential Manager Control panel .

Dan kemudian pilih Kredensial Windows untuk mengedit (= menghapus atau memodifikasi) kredensial git yang disimpan untuk URL yang diberikan.

patthoyts
sumber
197
Saya menemukan panel kontrol Kredensial Windows di Control Panel\User Accounts\Credential Managerbawah Windows 7
Steve Pitchers
2
Tidak mematikan proses meninggalkan jejak di suatu tempat, sehingga kata sandi masih dapat diakses? Menurut git manual, mereka disimpan dalam "teks biasa".
Ufos
1
Di bawah windows 8.1 "Kredensial Windows" berada di bawah Kredensial Generik dan git: gitlab.com atau server git pilihan Anda.
Jeff
5
Di bawah Windows 8/10, Pengaturan Akun Pengguna terperinci berada di bawah Panel Kontrol "klasik", bukan Aplikasi "Pengaturan" (UI modern). Hanya untuk menghindari kebingungan.
DanielH
1
di windows 10 Buka Panel Kontrol \ Semua Item Panel Kontrol \ Manajer Kredensial. Mungkin ada Kredensial Generik untuk GitHub. Anda dapat memperbarui nama pengguna dan kata sandi di sana.
Eldhose Abraham
155

Ketik ulang:

$ git config credential.helper store

Dan kemudian Anda akan diminta untuk memasukkan kredensial Anda lagi.

PERINGATAN

Menggunakan bantuan ini akan menyimpan kata sandi Anda yang tidak dienkripsi di disk

Sumber: https://git-scm.com/docs/git-credential-store

aaafly
sumber
36
perintah ini tidak meminta untuk memasukkan kredensial saya lagi, perintah ini tidak melakukan apa
Shirish Herwade
3
@ShirishHerwade coba git pull, maka Anda akan melihat layar prompt
ismailcem
2
@jkokorian Untuk membatalkan perintah ini hapus baris yang relevan dari .git/config.
Zenadix
110

Saya menghadapi masalah yang sama dengan OP. Itu mengambil kredensial Git lama saya yang tersimpan di suatu tempat di sistem dan saya ingin menggunakan Git dengan kredensial baru saya, jadi saya menjalankan perintah

$ git config --system --list

Itu menunjukkan

credential.helper=manager

Setiap kali saya melakukan git pushitu mengambil nama pengguna lama saya yang saya set lama kembali, dan saya ingin menggunakan akun GitHub baru untuk mendorong perubahan. Saya kemudian menemukan bahwa kredensial akun GitHub lama saya disimpan di Control PanelAkun PenggunaManajer KredensialKelola Kredensial Windows .

Kelola Kredensial Windows

Saya baru saja menghapus kredensial ini dan ketika saya melakukan git pushitu meminta kredensial GitHub saya, dan itu berfungsi seperti pesona.

Mourya
sumber
Ilustrasi bagus dari Manajer Kredensial Git terbaru ( github.com/Microsoft/Git-Credential-Manager-for-Windows ) yang berfungsi dengan menyimpan kredensial ( github.com/Microsoft/Git-Credential-Manager-for-Windows/ masalah / ... ) +1
VonC
1
@VonC Butuh waktu sehari untuk mengetahui hal ini karena saya tidak mengetahui mekanisme menyimpan kredensial ini.
Mourya
Memang cukup baru. Terima kasih telah menyebutkannya di sini.
VonC
Ini mungkin jawaban yang lebih baik daripada yang "diterima", yang bagi saya menyiratkan nuking semua kredensial. Pasti membantu saya.
VictorLegros
52

Coba gunakan perintah di bawah ini.

git credential-manager

Di sini Anda bisa mendapatkan berbagai opsi untuk mengelola kredensial Anda (lihat layar di bawah).

Masukkan deskripsi gambar di sini

Atau Anda bahkan dapat langsung mencoba perintah ini:

git credential-manager uninstall

Ini akan mulai meminta kata sandi lagi pada setiap permintaan interaksi server.

Himanshu Aggarwal
sumber
10
Mengapa saya mendapatkan -git: 'credential-manager' is not a git command. See 'git --help'.
Saikat
2
Tidak yakin, mengapa itu tidak bekerja untuk Anda, tetapi bahkan dalam versi git terbaru, itu tersedia. Silakan merujuk tautan ini untuk info lebih lanjut - git-scm.com/book/gr/v2/Git-Tools-Credential-Storage
Himanshu Aggarwal
3
Mendapat removal failed. U_U Press any key to continue... fatal: InvalidOperationException encountered. Cannot read keys when either application does not have a console or when console input has been redirected from a file. Try Console.Read.(dengan U_Uemoji yang bagus entah dari mana :))
jeromej
1
Satu-satunya solusi yang bekerja untuk saya di Windows dengan GitBash.
alain.janinm
mungkin di samping, tetapi saya menginstal git via choco, dan metode [uninstall] ini baik bagi saya untuk menarik repo pada komputer yang digunakan tanpa menyimpan kredensial
beep_check
32

Saya menemukan sesuatu yang bekerja untuk saya. Ketika saya menulis komentar saya ke OP, saya gagal memeriksa file konfigurasi sistem:

git config --system -l

menunjukkan a

credential.helper=!github --credentials

baris. Saya membatalkannya dengan

git config --system --unset credential.helper

dan sekarang kredensial dilupakan.

damix911
sumber
2
Yaitu, Anda mungkin perlu menjalankan perintah yang disarankan dengan cara yang sama dari 2-3 kali jika Anda telah mengkonfigurasi pasangan pembantu kredensial. git config --global --unset credential.helperdan mungkin hanya git config --unset credential.helperdi repositori Anda jika Anda entah bagaimana mengaturnya secara eksplisit di sana.
dragon788
terima kasih atas solusinya. Hanya detail: dalam kasus saya, saya harus meluncurkan command prompt sebagai administrator
A.Joly
30

Dalam kasus saya, Git menggunakan Windows untuk menyimpan kredensial.

Yang harus Anda lakukan adalah menghapus kredensial yang disimpan yang tersimpan di akun Windows Anda:

Menu kredensial Windows

SoliQuiD
sumber
1
Apa bedanya dengan jawaban ini ? atau yang ini ?
Liam
20
git config --list

akan ditampilkan credential.helper = manager (ini pada mesin windows)

Untuk menonaktifkan nama pengguna / kata sandi yang di-cache ini untuk folder git lokal Anda saat ini, cukup masukkan

git config credential.helper ""

Dengan cara ini, git akan meminta kata sandi setiap kali, mengabaikan apa yang tersimpan di dalam "manajer".

Zhe Hu
sumber
Saya memiliki kesalahan di bawah ini,, git: 'credential-' is not a git command. See 'git --help'.tetapi untuk keamanan, saya mengambil jawaban ini karena ini satu-satunya yang membuat saya dimintai kata sandi baru. Saya bertanya-tanya, apakah ini bukan hanya menutupi masalah (apakah kata sandi benar-benar dihapus?)
ribamar
Tidak rm -rf ~/.git-credentials. Perhatikan bahwa ini dapat bervariasi ( git help credential-store)
ribamar
maaf, ini benar-benar tidak berhasil. itu akan meminta kata sandi sekali lagi dan menyimpannya lagi. akan menghapus upvote saya jika diizinkan.
ribamar
git config --unset credential.helpermembersihkan entri. Jawaban ini hanya membuatnya menjadi string kosong dan menghasilkan kesalahan yang dijelaskan @ribamar dalam komentar.
Dark Castle
15

Di Windows 2003 Server dengan "wincred" *, tidak ada jawaban lain yang membantu saya. Saya harus menggunakan cmdkey.

  • cmdkey /list daftar semua kredensial yang disimpan.
  • cmdkey /delete:Target menghapus kredensial dengan nama "Target".

cmdkey / daftar;  cmdkey / delete: Target

(* Dengan "meringis" Maksudku git config --global credential.helper wincred)

ericbn
sumber
Ya, cmdkeyadalah mitra baris perintah untuk Kredensial Windows yang dijelaskan dalam jawaban yang dipilih.
nicobo
15

Kesalahan ini muncul ketika Anda menggunakan beberapa akun Git pada mesin yang sama.

Jika Anda menggunakan macOS maka Anda dapat menghapus kredensial yang disimpan dari github.com .

Ikuti langkah-langkah di bawah ini untuk menghapus kredensial github.com .

  1. Buka Akses Keychain
  2. Temukan github
  3. Pilih github.com dan klik kanan di atasnya
  4. Hapus "github.com"
  5. Coba lagi untuk Push atau Tarik ke git dan itu akan meminta kredensial.
  6. Masukkan kredensial yang valid untuk akun repositori.
  7. Selesai

    masukkan deskripsi gambar di sini

Pratik Patel
sumber
Terima kasih, ini bekerja dengan baik di mac os
babygame0ver
13

Perlu masuk dengan masing-masing github usernamedanpassword

Untuk menghapus nama pengguna dan kata sandi di windows

Panel Kontrol \ Akun Pengguna \ Manajer Kredensial

Edit Kredensial windows

Hapus pengguna yang ada dan sekarang pergi ke command prompt tulis perintah push itu menunjukkan github pop-up untuk memasukkan username/ emaildanpassword .

Sekarang kita dapat mendorong kode setelah beralih pengguna.

Amit K
sumber
13

Mendapat kesalahan yang sama ketika melakukan 'git pull' dan ini adalah bagaimana saya memperbaikinya.

  1. Ubah repo ke HTTPS
  2. Jalankan perintah git config --system --unset credential.helper
  3. Jalankan perintah git config --system --add credential.helper manager
  4. Perintah uji git pull
  5. Masukkan kredensial di jendela masuk yang muncul.
  6. Git pull selesai dengan sukses.
Amer Bashoeb
sumber
--sistem? Bagaimana dengan - global? Bagaimana dengan tidak ada ruang lingkup? Apa artinya ruang lingkup pengaturan?
masterxilo
Hanya dengan Langkah 1 menyelesaikan masalah saya.
zzxakan
11

Hapus baris ini dari file .gitconfig Anda yang terletak di folder pengguna yang saat ini masuk Windows:

[credential]
helper = !\"C:/Program Files (x86)/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe\"

Ini bekerja untuk saya dan sekarang ketika saya mendorong ke jarak jauh ia meminta kata sandi saya lagi.

Liviu M.
sumber
11

Anda harus memperbaruinya di Credential Manager Anda.

Buka Panel Kontrol> Akun Pengguna> Manajer Kredensial> Kredensial Windows. Anda akan melihat kredensial Git dalam daftar (mis. Git: https: //). Klik di atasnya, perbarui kata sandi, dan jalankan perintah git pull / push dari Git bash Anda dan itu tidak akan membuang pesan kesalahan lagi.

ChiragBhalgami
sumber
10

Menggunakan versi terbaru git untuk Windows pada Windows 10 Professional dan saya memiliki masalah serupa di mana saya memiliki dua akun GitHub yang berbeda dan juga akun Bitbucket sehingga semuanya menjadi sedikit membingungkan untuk VS2017, ekstensi git dan git bash.

Saya pertama kali memeriksa bagaimana git menangani kredensial saya dengan perintah ini (jalankan git bash dengan perintah yang ditinggikan atau Anda mendapatkan kesalahan):

git config --list

Saya menemukan entri Credential Manager jadi saya mengklik tombol START> mengetik Credential Manager ke dan mengklik kiri pada ikon yellow safe credential manager yang meluncurkan aplikasi. Saya kemudian mengklik tab Kredensial Windows dan menemukan entri untuk akun git saya saat ini yang kebetulan adalah Bit-bucket jadi saya menghapus akun ini.

Tetapi ini tidak berhasil, jadi langkah selanjutnya adalah menghapus kredensial dan saya melakukan ini dari direktori repositori di laptop saya yang berisi proyek GitHub yang saya coba tekan ke remote. Saya mengetik perintah berikut:

git config --system --unset credential.helper

Lalu saya melakukan push git dan saya diminta untuk nama pengguna GitHub yang saya masukkan (yang benar saya butuhkan) dan kemudian kata sandi yang terkait dan semuanya didorong dengan benar.

Saya tidak yakin berapa banyak masalah ini akan terjadi, kebanyakan orang mungkin bekerja di satu repositori tetapi saya harus bekerja di beberapa dan menggunakan penyedia yang berbeda sehingga dapat menghadapi masalah ini lagi.

Tahir Khalid
sumber
bekerja untuk saya .. terima kasih
Krishnamoorthy Acharya
8

Dalam kasus saya, saya tidak dapat menemukan kredensial disimpan di Windows Credential Manager (Windows 7).

Saya dapat mengatur ulang kredensial saya dengan mengeksekusi

git config --global credential.helper wincred

Sejujurnya itu adalah hujan es bagi Mary untuk melihat apakah itu akan menghapus kredensial saya dan itu benar-benar berhasil.

Jeff LaFay
sumber
Ini bekerja untuk saya; Saya TIDAK punya entri di Credential Manager untuk dihapus.
bdwakefield
7

Anda dapat menghapus baris credential.helper=!github --credentialsdari file berikut C:\Program Files\Git\mingw64\etc\gitconfiguntuk menghapus kredensial git

Yoan Pumar
sumber
7
  1. Pergi ke C:\Users\<current-user>
  2. periksa .git-credentialsfile
  3. Hapus konten atau modifikasi sesuai kebutuhan Anda
  4. Mulai ulang terminal Anda
Dinesh Patil
sumber
satu-satunya solusi yang bekerja untuk saya
Wachburn
7

Pada Windows, setidaknya, git remote show [remote-name]akan berfungsi, mis

git remote show origin
Jason S
sumber
Tidak yakin mengapa downvote. Itu berhasil. Saya terjebak dengan yang lainnya.
Jason S
... dan saya hanya menggunakannya lagi hari ini, berhasil. Setiap kali saya mengubah kata sandi di kantor, saya harus melakukan ini.
Jason S
2
Membuat pesona bagiku.
IronAces
Sama disini. Anda bahkan tidak harus berada di direktori repositori
Nicola Musatti
6

Jika Anda ingin git melupakan kredensial lama yang disimpan dan memasukkan kembali nama pengguna dan kata sandi, Anda dapat melakukannya dengan menggunakan perintah di bawah ini:

git credential-cache exit

Setelah menjalankan perintah di atas, jika Anda mencoba mendorong apa pun itu akan memberikan opsi untuk memasukkan nama pengguna dan kata sandi.

amitshree
sumber
3

Yang akhirnya memperbaiki ini bagi saya adalah menggunakan desktop GitHub, pergi ke pengaturan repositori, dan menghapus pengguna: pass @ dari url repositori. Kemudian, saya mencoba push dari baris perintah dan diminta untuk kredensial masuk. Setelah saya masukkan semuanya kembali normal. Visual Studio dan baris perintah berfungsi, dan tentu saja, desktop GitHub.

GitHub Desktop-> Repository-> Pengaturan Repositori-> Tab jarak jauh

Ubah Repositori Jarak Jauh Utama (asal) dari:

https: //pork@[email protected]/MyProject/MyProject.git

Untuk:

https://github.com/MyProject/MyProject.git

Klik "Simpan"

Kredensial akan dihapus.

Nick Pirocanac
sumber
Menyetel ulang asal ke yang sama dari baris perintah di Windows telah menyelesaikan masalah saya. Saya menggunakan GitLab jadi saya tidak bisa menggunakan GitHub Desktop untuk ini.
David Vargas
3

Untuk pengguna macOS:

Kesalahan ini muncul ketika Anda menggunakan beberapa akun Git pada mesin yang sama.

Ikuti langkah-langkah di bawah ini untuk menghapus kredensial github.com.

  1. Pergi ke Finder
  2. Buka Aplikasi
  3. Buka Folder Utilitas
  4. Buka Akses Keychain
  5. Pilih github.com dan klik kanan di atasnya

    Hapus "github.com"

Coba lagi untuk Push atau Tarik ke git dan itu akan meminta kredensial. Masukkan kredensial yang valid untuk akun repositori. Selesai

iamsurajdc
sumber
3

Untuk Windows 10, buka jalan di bawah ini,

Panel Kontrol \ Akun Pengguna \ Manajer Kredensial

Akan ada 2 tab di lokasi ini,

  1. Kredensial web dan 2. Kredensial Windows.

Klik pada tab kredensial Windows dan di sini Anda dapat melihat kredensial github yang tersimpan, di bawah tajuk "Kredensial generik".

Anda dapat menghapusnya dari sini dan mencoba dan mengkloning ulang - itu akan meminta nama pengguna / kata sandi sekarang karena kami baru saja menghapus kredensial yang tersimpan dari sistem Windows 10

Pemrograman AAD
sumber
2

Untuk menghapus Git Credentials Managers untuk Windows cache:

rm $env:LOCALAPPDATA\GitCredentialManager\tenant.cache

atau

rm %LOCALAPPDATA%\GitCredentialManager\tenant.cache
Chris F Carroll
sumber
2

Coba ini ketika tidak ada yang disebutkan di atas bekerja untuk Anda.

git config credential.helper 'cache --timeout=30'

ini akan menghapus cache setiap 3sec dan akan meminta nama pengguna dan kata sandi. Anda dapat menjalankan kembali perintah dengan nilai batas waktu yang meningkat.

manish kumar
sumber
1

Dalam kasus kami, menghapus kata sandi dalam file .git-kredensial pengguna berhasil bagi kami.

c:\users\[username]\.git-credentials
Tarif
sumber
Ya, beberapa orang telah menyatakan ini berkali-kali
Liam
1

Membangun dari jawaban tinggi @ patthoyts ( https://stackoverflow.com/a/15382950/4401322 ):

Jawabannya menggunakan tetapi tidak menjelaskan konfigurasi "lokal" vs. "global" vs. "sistem". Dokumentasi git resmi untuk mereka ada di sini dan layak dibaca.

Sebagai contoh, saya menggunakan Linux, dan tidak menggunakan konfigurasi sistem , jadi saya tidak pernah menggunakan --systemflag, tetapi biasanya perlu membedakan --localdan --globalmengkonfigurasi.

Kasus penggunaan saya adalah saya punya dua crendential Github; satu untuk bekerja, dan satu untuk bermain.

Inilah cara saya menangani masalah:

$ cd work
# do and commit work
$ git push origin develop
# Possibly prompted for credentials if I haven't configured my remotes to automate that. 
# We're assuming that now I've stored my "work" credentials with git's credential helper.

$ cd ~/play 
# do and commit play
$ git push origin develop                                                                   
remote: Permission to whilei/specs.git denied to whilei.                
fatal: unable to access 'https://github.com/workname/specs.git/': The requested URL returned error: 403

# So here's where it goes down:
$ git config --list | grep cred
credential.helper=store # One of these is for _local_
credential.helper=store # And one is for _global_

$ git config --global --unset credential.helper
$ git config --list | grep cred
credential.helper=store # My _local_ config still specifies 'store'
$ git config --unset credential.helper
$ git push origin develop
Username for 'https://github.com': whilei
Password for 'https://[email protected]':
Counting objects: 3, done.
Delta compression using up to 12 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 1.10 KiB | 1.10 MiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/whilei/specs.git
   b2ca528..f64f065  master -> master

# Now let's turn credential-helping back on:
$ git config --global credential.helper "store"
$ git config credential.helper "store"
$ git config --list | grep cred
credential.helper=store # Put it back the way it was.
credential.helper=store

Perlu juga dicatat bahwa ada cara untuk menghindari masalah ini sama sekali, misalnya, Anda dapat menggunakan ~/.ssh/configdengan kunci SSH terkait untuk Github (satu untuk bekerja, satu untuk bermain) dan juga host jarak jauh yang diberi nama kustom untuk menyelesaikan otentikasi kontekstualisasi juga.

irbanana
sumber
1

Untuk menambah @ericbn 's https://stackoverflow.com/a/41111629/579827 di sini adalah perintah sampel Saya sudah tertanam dalam script saya menjalankan untuk memperbarui semua password saya setiap kali mereka diperbarui. Ini mungkin tidak dapat digunakan sebagaimana adanya karena cukup spesifik tetapi menunjukkan penggunaan kehidupan nyata cmdkey.exe.

⚠ Ini adalah skrip shell yang dijalankan di cygwin

⚠ Ini berfungsi karena saya menggunakan repositori git pribadi yang semuanya mengautentikasi dengan kata sandi yang sama (Anda mungkin tidak ingin mengulang dengan kredensial yang sama, tetapi Anda dapat menggunakan kembali /listperintah sampel ini untuk mengekstrak daftar kredensial yang sudah terdaftar) ⚠

entries=`cmdkey.exe /list: | grep git | sed -r -e 's/^[^:]+:\s*(.*)$/\1/gm'`
for entry in ${entries}
do
    cmdkey.exe "/delete:${entry}"
    cmdkey.exe "/generic:${entry}" "/user:${GIT_USERNAME}" "/pass:${GIT_PASSWORD}"
done
nicobo
sumber
0

Jika Anda dikonfirmasi menggunakan pasangan kunci Anda, Anda dapat menghapus atau memindahkan kunci pribadi Anda, atau menghentikan agen kunci dan mencoba.

Munim
sumber
2
dia menggunakan https, jadi tidak ada kunci yang terlibat di sini
CharlesB