Kimlik bilgilerini Git'ten kaldır


623

Birkaç depo ile çalışıyorum, ama son zamanlarda sadece içimizde çalışıyordum ve hepsi harikaydı.

Bugün bir başkasına kod koymak zorunda kaldım, ama bazı sıkıntılarım var.

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

Yapabileceğim hiçbir şey yok, bu şifre girişini tekrar getirecek.

Git'in o deponun şifresini istemesi için sistemimdeki kimlik bilgilerini nasıl sıfırlayabilirim?

Denedim:

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

şifreyi kaldırmak için

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

kimlik bilgilerinin önbelleğini önlemek için ...

Hiçbir şey işe yaramıyor; daha iyi bir fikri olan var mı?


Eğer bir var mı ~/.netrcdosyası?
Robinbin

2
@robinst bir windows makinesi ve Git
Bash'den

Bir Windows makinesi için @ balexandre, şifrelenmiş bir dosyada birden fazla kimlik bilgisi netrcdepolayacak olan yeni (git 1.8.3) kimlik bilgileri yardımcısını kullanmayı tercih ederim . Önbellek parolayı yalnızca belirli bir süre için "önbelleğe" aldığından, her oturum için her seferinde parolanızı girmekten daha iyidir. Burada tam bir örneğe bakın .
VonC

.Netrc yok. ~ (C: \ Users \ Kendim) .git-credentials adlı bir dosyam var, ancak silinmesi işe yaramadı, hala Git Shell'de oturum açtım. Ayrıca, Denetim Masası Kimlik Bilgisi Yöneticisi hiçbir şey depolamıyor gibi görünüyor. Yerel ve global Git yapılandırma dosyaları iyi görünüyor. İş istasyonumu kalan bir çalışandan miras aldım, bu yüzden nasıl kapatılacağına dair hiçbir fikrim olmayan alışılmışın dışında bir kimlik bilgisi önbellekleme mekanizması kurmuş olabilir. Umarım bu davranış Git Windows'un varsayılanı DEĞİLDİR. Mac'te kimlik bilgileri önbelleği varsayılan olarak bulunur, ancak en azından Anahtarlık Erişimi'nde görünür.
damix911

Linux, windows ve Mac OS X üzerinde de çalışan daha kapsamlı bir yanıt için bkz. Stackoverflow.com/a/39944557/3906760
MrTux

Yanıtlar:


654

Bu sorun bir Windows makinesinde geliyorsa, aşağıdakileri yapın.

  • Kimlik Bilgisi Yöneticisi'ne gidin
  • Windows Kimlik Bilgilerine Git
  • Genel Kimlik Bilgileri altındaki girişleri silin
  • Tekrar bağlanmayı deneyin. Bu sefer sizden doğru kullanıcı adı ve şifreyi girmeniz istenecektir.

Kimlik Bilgisi Yöneticisi'ne gidin

Windows Kimlik Bilgilerine gidin ve Genel Kimlik Bilgileri altındaki girişleri silin


4
Bu, eğer sadece ilgili olduğunu credential.helper=manager. Bu türü test etmek için git config --list. Bu değere ayarlanırsa store, kimlik bilgileri kimlik bilgileri deposunda saklanmaz ancak şifrelenmemiş olarak saklanır.
Liam

3
Sadece adlı kimlik bilgisini silmek zorunda kaldım git:https://github.comve PyCharm'ı kullanarak bir kopyayı bir sonraki kopyaladığımda kullanıcı adımı girmem / geçmem istendi. Birden fazla github hesabım vardı ve yanlış hesap önbelleğe alındı.
dotcomly

22
Birisi bunu Alman yerelleştirilmiş bir makinede arıyorsa , yol üzerinde "Anmeldeinformationsverwaltung" olurSystemsteuerung\Alle Systemsteuerungselemente\Anmeldeinformationsverwaltung .
davidenke

3
Alternatif olarak, kullanıcı / geçişi Credential Manager. Bu benim için de işe yaradı
Daniel Lerps

Kimlik bilgilerini silmek, 403Bitbucket aracılığıyla hatamı çözdü.
Eido95

673

Git kimlik bilgisi önbelleği, kimlik bilgilerinizi bellekte önbelleğe alan ve isteğe bağlı olarak dağıtan bir arka plan işlemi çalıştırır. Bu yüzden git-credential-cache - daemon işleminizi öldürmek tüm bunları ortadan kaldırır ve cache.helper seçeneği olarak kullanmaya devam ederseniz şifrenizi tekrar girmenizi sağlar.

Ayrıca Git kimlik bilgisi önbelleğinin kullanımını devre dışı bırakabilirsiniz git config --global --unset credential.helper. Ardından bunu sıfırlayın, önbelleğe alınmış kimlik bilgilerinin (varsa) diğer depolar için kullanılabilir olmasını sağlayın. Bu git config --system --unset credential.helper, sistem yapılandırma dosyasında ayarlanmışsa da yapmanız gerekebilir (örneğin, Windows 2 için Git).

Windows'da yönetici yardımcısını ( git config --global credential.helper manager) kullanarak daha iyi durumda olabilirsiniz . Bu, kimlik bilgilerinizi depolanan kimlik bilgilerinizi silebileceğiniz veya düzenleyebileceğiniz bir Denetim Masası arabirimine sahip Windows kimlik bilgisi deposunda depolar. Bu mağaza ile bilgileriniz Windows giriş bilgileriniz tarafından güvence altına alınmıştır ve birden çok oturumda devam edebilir. Git for Windows 2.x'te bulunan yönetici yardımcısı, Git için Windows 1.8.1.1'e eklenen önceki wincred yardımcısının yerini almıştır. Winstore adında benzer bir yardımcı da çevrimiçi olarak mevcuttur ve daha fazla GUI tabanlı bir arayüz sunduğu için GitExtensions ile birlikte kullanılmıştır. Müdür yardımcısı ile aynı GUI arayüzü sunuyor winstore .

Windows kimlik yöneticisi ayrıntılarını gösteren Windows 10 destek sayfasından ayıklayın :

Kimlik Bilgisi Yöneticisi'ni açmak için, görev çubuğundaki arama kutusuna "kimlik bilgisi yöneticisi" yazın ve Kimlik Bilgisi Yöneticisi Denetim Masası'nı seçin .

Ardından , belirli bir URL için depolanan git kimlik bilgilerini düzenlemek (= kaldırmak veya değiştirmek) için Windows Kimlik Bilgilerini seçin .


197
Windows Kimlik Bilgileri kontrol panelini Control Panel\User Accounts\Credential ManagerWindows 7 altında buldum
Steve Pitchers

2
İşlemi öldürmek, parolaya hala erişilebilmesi için herhangi bir yerde iz bırakmıyor mu? Git kılavuzuna göre "düz metin" olarak saklanırlar.
Ufos

1
Windows 8.1 altında "Windows Kimlik Bilgileri" Genel Kimlik Bilgileri altında ve git: gitlab.com veya seçtiğiniz git sunucunuzdaydı.
Jeff

5
Windows 8/10 altında ayrıntılı Kullanıcı Hesabı Ayarları "Ayarlar" Uygulaması (modern UI) değil , " klasik" Kontrol Paneli altında bulunur . Sadece karışıklığı önlemek için.
DanielH

1
Windows'ta 10 Denetim Masası \ Tüm Denetim Masası Öğeleri \ Kimlik Bilgisi Yöneticisi'ne gidin. GitHub için Genel Kimlik Bilgisi olabilir. Burada kullanıcı adını ve şifreyi güncelleyebilirsiniz.
Eldhose Abraham

155

tekrar yazın:

$ git config credential.helper store

Ardından kimlik bilgilerinizi tekrar girmeniz istenir.

UYARI

Bu yardımcıyı kullandığınızda şifreleriniz şifrelenmemiş olarak diskte saklanır

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


35
bu komut kimlik bilgilerimi tekrar girmek istemiyor, bu komut hiçbir şey yapmıyor
Shirish Herwade

3
@ShirishHerwade git pull deneyin, sonra istemi ekranını göreceksiniz
ismailcem

2
@jkokorian Bu komutu geri almak için ilgili satırları silin .git/config.
Zenadix

110

OP ile aynı sorunla karşılaştım. Sistemin bir yerinde depolanmış eski Git kimlik bilgilerimi alıyordu ve Git'i yeni kimlik bilgilerimle kullanmak istedim, bu yüzden komutu çalıştırdım

$ git config --system --list

Gösterdi

credential.helper=manager

Her yaptığımda, git pushuzun süredir ayarladığım eski kullanıcı adımı alıyordu ve değişiklikleri itmek için yeni bir GitHub hesabı kullanmak istedim. Daha sonra eski GitHub hesabı kimlik bilgilerimin Denetim MasasıKullanıcı HesaplarıKimlik Bilgisi YöneticisiWindows Kimlik Bilgilerini Yönet altında saklandığını gördüm .

Windows Kimlik Bilgilerini Yönetme

Bu kimlik bilgilerini yeni kaldırdım ve gerçekleştirdiğimde git pushGitHub kimlik bilgilerimi istedi ve bir cazibe gibi çalıştı.


Son Git Kimlik Yöneticisi (son İyi illüstrasyon github.com/Microsoft/Git-Credential-Manager-for-Windows kimlik bilgilerini depolayarak çalışır) ( github.com/Microsoft/Git-Credential-Manager-for-Windows/ sorunları /… ) +1
VonC

1
@VonC Kimlik bilgilerini saklama mekanizmasının farkında olmadığım için bunu öğrenmek bir günümü aldı.
Mourya

Gerçekten oldukça yenidir. Burada bahsettiğiniz için teşekkürler.
VonC

Bu muhtemelen "kabul edilen" yanıttan daha iyi bir cevap, ki bu benim için tüm kimlik bilgilerini çekmeyi ima ediyor. Kesinlikle bana yardımcı oldu.
VictorLegros

52

Aşağıdaki komutu kullanmayı deneyin.

git credential-manager

Burada kimlik bilgilerinizi yönetmek için çeşitli seçenekler elde edebilirsiniz (aşağıdaki ekranı kontrol edin).

Resim açıklamasını buraya girin

Veya bu komutu doğrudan deneyebilirsiniz:

git credential-manager uninstall

Bu, her sunucu etkileşim isteğinde tekrar parola sormaya başlayacaktır.


10
Neden alıyorum -git: 'credential-manager' is not a git command. See 'git --help'.
Saikat

2
Emin değilim, neden sizin için çalışmıyor, ancak en son git sürümünde bile kullanılabilir. Daha fazla bilgi için lütfen bu bağlantıya bakın - git-scm.com/book/gr/v2/Git-Tools-Credential-Storage
Himanshu Aggarwal

3
Got 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.( U_Uhiçbir yerde güzel emoji ile :))
jeromej

1
GitBash ile Windows'ta benim için çalışan tek çözüm.
alain.janinm

belki bir kenara, ama ben choco üzerinden git yüklü ve bu [kaldırma] yöntemi kimlik bilgilerini depolamaksızın konuşlandırılmış bir bilgisayarda bir repo çekmek için iyi oldu
beep_check

32

Benim için işe yarayan bir şey buldum. OP'ye yorumumu yazdığımda sistem yapılandırma dosyasını kontrol edemedim:

git config --system -l

gösterir

credential.helper=!github --credentials

hat. İle ayarını kaldırdım

git config --system --unset credential.helper

ve şimdi kimlik bilgileri unutuldu.


2
Ankur, yapılandırılmış birkaç kimlik yardımcısı aldıysanız önerilen komutu 2-3 kez benzer şekilde çalıştırmanız gerekebilir. git config --global --unset credential.helperve belki de sadece git config --unset credential.helperdeponuzda, bir şekilde açıkça orada ayarlamış olsaydınız.
dragon788

çözüm için teşekkürler. Sadece bir detay: Benim durumumda komut istemini yönetici olarak başlatmak zorunda kaldım
A.Joly

30

Benim durumumda Git, kimlik bilgilerini depolamak için Windows'u kullanıyor.

Yapmanız gereken tek şey, Windows hesabınızda depolanan kayıtlı kimlik bilgilerini kaldırmaktır:

Windows kimlik bilgileri menüsü


1
Bunun bu cevaptan farkı nedir? ya da bu ?
Liam

20
git config --list

gösterecektir credential.helper = manager(bu bir windows makinesinde)

Geçerli yerel git klasörünüz için bu önbelleğe alınmış kullanıcı adını / şifreyi devre dışı bırakmak için şunu girin:

git config credential.helper ""

Böylece git her seferinde "yönetici" içine kaydedilenleri yok sayarak parola ister.


Aşağıdaki hatayı aldım git: 'credential-' is not a git command. See 'git --help'., ancak güvenlik için bu cevabı iptal ediyorum çünkü yeni bir parola istenmemi sağlayan tek kişi bu. Ben merak ediyorum, ancak, bu sadece sorunu maskeleme değil (şifre gerçekten kaldırıldı mı?)
ribamar

Hayır rm -rf ~/.git-credentials. git help credential-store
Değişebilir

üzgünüm, bu gerçekten işe yaramıyor. şifreyi bir kez daha soracak ve tekrar saklayacaktır. izin verilirse benim oyumu kaldıracaktı.
ribamar

git config --unset credential.helpergirişi temizler. Bu yanıt sadece boş dizeye ayarlar ve yorumlarda @ribamar tarafından açıklanan hatayı oluşturur.
Dark Castle

15

"Wincred" * içeren Windows 2003 Server'da, diğer yanıtların hiçbiri bana yardımcı olmadı. Kullanmak zorunda kaldım cmdkey.

  • cmdkey /list saklanan tüm kimlik bilgilerini listeler.
  • cmdkey /delete:Target "Hedef" adıyla kimlik bilgilerini siler.

cmdkey / list;  cmdkey / delete: Hedef

(* Demek istediğim "wincred" git config --global credential.helper wincred)


Evet, cmdkeyseçilen yanıtta açıklanan Windows Kimlik Bilgilerinin komut satırı karşılığıdır.
nicobo

15

Bu hata, aynı makinede birden fazla Git hesabı kullandığınızda görüntülenir.

MacOS kullanıyorsanız, github.com'un kayıtlı kimlik bilgilerini kaldırabilirsiniz .

Github.com kimlik bilgilerini kaldırmak için lütfen aşağıdaki adımları izleyin .

  1. Açık Anahtarlık Erişimi
  2. Github bul
  3. Github.com'u seçin ve sağ tıklayın
  4. "Github.com" dosyasını sil
  5. Tekrar Git veya Git'e doğru çekmeyi deneyin ve kimlik bilgilerini isteyecektir.
  6. Depo hesabı için geçerli kimlik bilgilerini girin.
  7. Bitti

    resim açıklamasını buraya girin


Teşekkürler, bu mükemmel mac os üzerinde çalışıyor
babygame0ver

13

İlgili github ile giriş yapmanız gerekiyor usernamevepassword

Windows'ta kullanıcı adını ve şifreyi silmek için

Denetim Masası \ Kullanıcı Hesapları \ Kimlik Bilgisi Yöneticisi

Windows Kimlik Bilgilerini Düzenle

Gösterir itme komut istemi yazma komuta gitmek artık Mevcut kullanıcıyı çıkarın ve github açılır girmek için username/ emailvepassword .

Artık kullanıcıyı değiştirdikten sonra kodu zorlayabiliyoruz.


13

Bir 'git pull' yaparken aynı hatayı aldım ve bu nasıl düzelttim.

  1. Repoyu HTTPS olarak değiştir
  2. Komutu çalıştır git config --system --unset credential.helper
  3. Komutu çalıştır git config --system --add credential.helper manager
  4. Test komutu git pull
  5. Açılan oturum açma penceresine kimlik bilgilerini girin.
  6. Git çekme işlemi başarıyla tamamlandı.

--system? --Global ne olacak? Kapsam yok mu? Ayar kapsamı ne anlama geliyor?
masterxilo

Sadece Adım 1 ile sorunumu çözdüm.
zzxwill

11

Bu satırı, Windows'un şu anda oturum açmış kullanıcı klasöründe bulunan .gitconfig dosyanızdan kaldırın:

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

Bu benim için çalıştı ve şimdi uzaktan kumandaya bastığımda tekrar şifremi istiyor.


11

Kimlik Bilgisi Yöneticinizde güncellemelisiniz.

Denetim Masası> Kullanıcı Hesapları> Kimlik Bilgisi Yöneticisi> Windows Kimlik Bilgileri'ne gidin. Listede Git kimlik bilgilerini göreceksiniz (örneğin git: https: //). Üzerine tıklayın, şifreyi güncelleyin ve Git bash'ınızdan git pull / push komutunu yürütün, başka hata mesajı atmaz.



10

Windows 10 Professional'da Windows için git'in en son sürümünü kullanıyorum ve iki farklı GitHub hesabım ve bir Bitbucket hesabım olduğu için benzer bir sorun yaşadım, böylece VS2017, git uzantıları ve git bash için biraz kafa karıştırıcı oldu.

Önce git komutumu bu komutla nasıl kullandığımı kontrol ettim (git bash'ı yükseltilmiş komutlarla çalıştırın veya hatalar alıyorsunuz):

git config --list

Kimlik Bilgisi Yöneticisi girişini buldum, bu yüzden BAŞLAT düğmesine tıkladım> Uygulamayı başlatan kimlik bilgisi yöneticisi sarı güvenli simgesine sol tıklayın ve Kimlik Bilgisi Yöneticisi'ni sol tıkladım. Daha sonra Windows Kimlik Bilgileri sekmelerini tıkladım ve mevcut git hesabımın Bit-bucket olan girdisini buldum, bu yüzden bu hesabı sildim.

Ama bu hile yapmadı, bu yüzden bir sonraki adım kimlik bilgilerini unsetmekti ve bunu uzaktan kumandayı zorlamaya çalıştığım GitHub projesini içeren dizüstü bilgisayarımdaki depo dizininden yaptım. Aşağıdaki komutu yazdım:

git config --system --unset credential.helper

Sonra bir git push yaptım ve girdiğim bir GitHub kullanıcı adı istedim (doğru olanı) ve daha sonra ilişkili şifre ve her şey doğru bir şekilde itildi.

Çoğu insanın muhtemelen bir depoda çalıştığı bir sorunun ne kadar ilerlediğinden emin değilim ama birkaçında çalışmak zorundayım ve farklı sağlayıcılar kullanmak zorunda kaldım, bu yüzden bu sorunla tekrar karşılaşabilirler.


benim için çalıştı .. teşekkür ederim
Krishnamoorthy Acharya

8

Benim durumumda, Windows Kimlik Bilgisi Yöneticisi'ne (Windows 7) kaydedilen kimlik bilgilerini bulamadım.

Kimlik bilgilerimi çalıştırarak sıfırlayabildim

git config --global credential.helper wincred

Kimlik bilgilerimi silip silemeyeceğini görmek gerçekten dürüst bir Mary idi ve gerçekten işe yaradı.


Bu benim için çalıştı; Silinecek Kimlik Bilgisi Yöneticisi'nde bir girişim yoktu.
bdwakefield

7

Git kimlik bilgilerini kaldırmak için satırı credential.helper=!github --credentialsaşağıdaki dosyadan C:\Program Files\Git\mingw64\etc\gitconfigkaldırabilirsiniz


7
  1. Adresine git C:\Users\<current-user>
  2. kontrol .git-credentialsdosyayı
  3. İçeriği silin veya gereksiniminize göre değiştirin
  4. Terminalinizi yeniden başlatın

benim için çalışan tek çözüm
Wachburn

7

Windows'ta, en azından git remote show [remote-name], örn.

git remote show origin

Neden aşağı oy emin değilim. Çalışıyor. Diğer her şeye takıldım.
Jason S

... ve bugün tekrar başarılı bir şekilde kullandım. İş yerinde şifremi her değiştirdiğimde bunu yapmam gerekiyor.
Jason S

2
Benim için bir cazibe çalıştı.
IronAces

Burada aynı. Havuz dizininde
olmanıza

6

Git'in eski kaydedilmiş kimlik bilgilerini unutmasını ve kullanıcı adı ile şifreyi tekrar girmesini istiyorsanız, aşağıdaki komutu kullanarak bunu yapabilirsiniz:

git credential-cache exit

Komutu çalıştırdıktan sonra, herhangi bir şeyi zorlamaya çalışırsanız, kullanıcı adı ve şifre girme seçeneği sunulur.


3

Sonunda benim için bunu düzelten şey GitHub masaüstünü kullanmak, depo ayarlarına gitmek ve kullanıcı: deponun URL'sinden @ pass @ kaldırmaktı. Sonra, komut satırından bir itme denedi ve giriş kimlik bilgileri istendi. Bunları her şeye koyduktan sonra normale döndü. Hem Visual Studio hem de komut satırı çalışıyor ve elbette GitHub masaüstü.

GitHub Desktop-> Depo-> Depo Ayarları-> Uzak sekmesi

Birincil Uzak Depoyu (başlangıç ​​noktasını) değiştir:

https: //pork@muffins@github.com/MyProject/MyProject.git

Kime:

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

"Kaydet" i tıklayın

Kimlik bilgileri silinecek.


Windows'taki komut satırından başlangıç ​​noktasını aynı şekilde sıfırlamak sorunumu çözdü. GitLab kullanıyorum, bu yüzden GitHub Desktop'ı kullanamadım.
David Vargas

3

MacOS kullanıcıları için:

Bu hata, aynı makinede birden fazla Git hesabı kullandığınızda görüntülenir.

Github.com kimlik bilgilerini kaldırmak için lütfen aşağıdaki adımları izleyin.

  1. Finder'a git
  2. Uygulamalara Git
  3. Yardımcı Programlar Klasörüne gidin
  4. Açık Anahtarlık Erişimi
  5. Github.com'u seçin ve sağ tıklayın

    "Github.com" dosyasını sil

Tekrar Git veya Git'e doğru çekmeyi deneyin ve kimlik bilgilerini isteyecektir. Depo hesabı için geçerli kimlik bilgilerini girin. Bitti


3

Windows 10 için aşağıdaki yola gidin,

Denetim Masası \ Kullanıcı Hesapları \ Kimlik Bilgisi Yöneticisi

Bu konumda 2 sekme olacak,

  1. Web kimlik bilgileri ve 2. Windows kimlik bilgileri.

Windows kimlik bilgileri sekmesini tıklayın ve burada saklanan github kimlik bilgilerinizi "Genel kimlik bilgileri" başlığı altında görebilirsiniz.

Bunları buradan kaldırabilir ve yeniden kopyalamayı deneyebilirsiniz - depolanan kimlik bilgilerini Windows 10 sistemlerinden yeni çıkardığımız için şimdi kullanıcı adı / şifre isteyecektir


2

Windows için Git Kimlik Bilgileri Yöneticilerini önbelleği temizlemek için:

rm $env:LOCALAPPDATA\GitCredentialManager\tenant.cache

veya

rm %LOCALAPPDATA%\GitCredentialManager\tenant.cache

2

Yukarıda belirtildiği gibi hiçbir şey sizin için çalışmadığında bunu deneyin.

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

bu, önbelleği her 3 saniyede bir kaldıracak ve kullanıcı adı ve parola isteyecektir. Komutu, artırılmış zaman aşımı değerleriyle yeniden çalıştırabilirsiniz.


1

Bizim durumumuzda, kullanıcının .git-credentials dosyasındaki parolayı silmek bizim için çalıştı.

c:\users\[username]\.git-credentials

Evet, birkaç kişi daha bunu defalarca
Liam

1

@ Patthoyts'in yüksek oyu alan yanıtından bina ( https://stackoverflow.com/a/15382950/4401322 ):

Cevabı "yerel" ve "küresel" ve "sistem" yapılandırmalarını kullanıyor ancak açıklamıyor. Onlar için resmi git belgeleri burada ve okumaya değer.

Örneğin, Linux'tayım ve bir sistem yapılandırması kullanmıyorum , bu yüzden asla --systembayrak kullanmıyorum , ancak genellikle --localve--global yapılandırmalar .

Benim kullanım durumumda iki Github kremi var; biri iş için, diğeri oyun için.

Sorunu şu şekilde halledeceğim:

$ 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://whilei@github.com':
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

Ayrıca, bu sorunu tamamen önlemenin yolları olduğunu da belirtmek gerekir, örneğin, ~/.ssh/configkimlik doğrulamasını bağlamsallaştırmayı çözmek için Github (bir iş, bir oyun için) ve buna karşılık gelen özel adlı uzak ana bilgisayarlarla ilişkili SSH anahtarlarını kullanabilirsiniz .


1

@Ericbn 'ın https://stackoverflow.com/a/41111629/579827 ' ye eklemek için , her yenilendiğimde tüm şifreleri güncellemek için çalıştırdığım bir komut dosyasına katıştırdığım örnek komutlar. Muhtemelen oldukça spesifik olduğu gibi kullanılamaz, ancak gerçek yaşam kullanımını gösterir cmdkey.exe.

⚠ Bu bir kabuk çalıştırmak komut cygwin

⚠ Bu, hepsi aynı parolayla kimlik doğrulaması yapan özel git depoları kullandığım için çalışır (muhtemelen aynı kimlik bilgileriyle döngü yapmak istemezsiniz, ancak /listzaten kayıtlı kimlik bilgilerinin listesini çıkarmak için bu örnek komutu yeniden kullanabilirsiniz) ⚠

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

0

Anahtar çiftinizi kullanarak kimlik doğrulaması yaptıysanız, özel anahtarınızı silebilir veya taşıyabilir veya anahtar aracısını durdurabilir ve deneyebilirsiniz.


2
https kullanıyor, bu yüzden burada anahtar yok
CharlesB
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.