Windows için Git Kimlik Yöneticisi'ni nasıl devre dışı bırakabilirim?


170

Git'in en son sürümünde, varsayılanın artık her seferinde Bash isteminde bana şifre sormak yerine "Windows için Git Kimlik Bilgisi Yöneticisi" iletişim kutusunu açmak olduğunu görüyorum.

Bu davranıştan gerçekten nefret ediyorum. Her seferinde nasıl devre dışı bırakabilirim ve Bash kabuğundaki şifreyi girmeye geri dönebilirim?

Bu arada Git'in ister Windows kimlik bilgileri ister bazı dahili arka plan programları aracılığıyla kimlik bilgilerimi hiçbir şekilde önbelleğe almasını istemiyorum . Tüm kimlik bilgileri önbelleğini devre dışı bırakmak istiyorum .

Yanıtlar:


211

Tamam, Windows için Git yükleyicisi sırasında "Git Kimlik Bilgisi Yöneticisi" onay kutusunu işaretlemekten kaçınmanız gerektiğini keşfettim veya (kurulumdan sonra) Bash kabuğunu Yönetici olarak çalıştırın git config --edit --systemve helper = managersatırı artık kaydedilmeyecek şekilde kaldırmak için kullanın bir kimlik yardımcısı.

Bonus puanları için şunu kullanın git config --edit --globalve ekleyin:

[core]
    askpass =

OpenSSH kimlik bilgileri açılır penceresini de devre dışı bırakmak için.


19
Cevabınız için teşekkürler. Benim için editörü ilk kez kullanıyordum. Değişiklikleri kaydetmek istiyorsanız, kaçış tuşuna basın ve şunu yazın: wq ve enter tuşuna basın (yazma / kaydetme ve çıkma).
Ben Besuijen

1
Çok teşekkürler! Kimlik bilgisi yöneticisi işimin proxy sunucusu ile karıştı ve Sourcetree ile çalışmayı kabus haline getirdi. Devre dışı bırakılması sorunu derhal çözdü.
Johnny

1
ve eğer: wq benim durumum gibi çalışmıyor iptal ve çıkmak için ctrl + z kullanın, ancak bunlar muhtemelen daha sonra çalışmak için birden fazla yedekleme dosyası yapacak
Adeem

37
Veya knock itgit config --system --unset credential.helper
Ben Butzer

4
SourceTree kullanan kişiler için, GIT'in "sistem" sürümünün gömülü sürümün kullanılmadığından emin olun. Tools -> Options -> Git.
Stevanicus

30

Kaldırma seçeneğini kullanarak Windows için Git Kimlik Bilgisi Yöneticisi'ni kaldırabildim:

git-credential-manager.exe uninstall

Bu komutu şurada çalıştır: C:\Program Files\Git\mingw64\libexec\git-core


1
Bu sadece duruyor ve ctrl-c'ye bastıktan sonra, bu kullanımı tükürüyor:git credential [fill|approve|reject]
ScottN

2
@ScottN koşuyorsun git-credential.exeama koşman gerekiyor git-credential-manager.exe.
Aidan Ryan

13

VSTS ile kullanmak zorunda olduğum başka bir seçenek:

git config credential.modalprompt false --global


3
Teşekkürler! Üretim sunucuma uzaktan bağlanmak için ssh kullanırken çok yararlı buldum: git pullWCM bombardımanı nedeniyle bir şey yapamadım . Bu seçenekle her iki dünyadan da keyif alıyorum: Sunucuya (veya Uzak Masaüstü'ne) fiziksel olarak bağlandığında ve bir ssh istemcisinden çekebildiğimde WCM.
cbuchart

9

Benim için işe yaramadı:

C:\Program Files\Git\mingw64\libexec\git-core
git-credential-manager.exe uninstall

Looking for Git installation(s)...
  C:\Program Files\Git

Updated your /etc/gitconfig [git config --system]
Updated your ~/.gitconfig [git config --global]

Removing from 'C:\Program Files\Git'.
  removal failed. U_U

Press any key to continue...

Ama --forcebayrakla çalıştı:

C:\Program Files\Git\mingw64\libexec\git-core
git credential-manager uninstall --force
08:21:42.537616 exec_cmd.c:236          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
e
08:21:42.538616 git.c:576               trace: exec: git-credential-manager uninstall --force
08:21:42.538616 run-command.c:640       trace: run_command: git-credential-manager uninstall --force

Looking for Git installation(s)...
  C:\Program Files\Git

Updated your /etc/gitconfig [git config --system]
Updated your ~/.gitconfig [git config --global]


Success! Git Credential Manager for Windows was removed! ^_^

Press any key to continue...

Çalıştırdıktan sonra bu izi görebiliyordum:

set git_trace=1

Ayrıca Git kullanıcı adını da ekledim:

git config --global credential.username myGitUsername

Sonra:

C:\Program Files\Git\mingw64\libexec\git-core
git config --global credential.helper manager

Sonunda bu komutu koydum:

git config --global credential.modalPrompt false

SSH aracısının çalışıp çalışmadığını kontrol ediyorum - bu komutu çalıştırmak için bir Bash penceresi açın

eval "$(ssh-agent -s)"

Ardından, .ssh dosyasının bulunduğu bilgisayar kullanıcıları / adınız klasöründe bir bağlantı ekleyin (hala Bash'te):

ssh-add .ssh/id_rsa

or

ssh-add ~/.ssh/id_rsa(if you are not in that folder)

Yukarıda eklediğim tüm ayarları kontrol ettim:

C:\Program Files\Git\mingw64\libexec\git-core
git config --list
09:41:28.915183 exec_cmd.c:236          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-cor
e
09:41:28.917182 git.c:344               trace: built-in: git config --list
09:41:28.918181 run-command.c:640       trace: run_command: unset GIT_PAGER_IN_USE; LESS=FRX LV=-c less
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
rebase.autosquash=true
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
http.sslbackend=openssl
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
credential.helper=manager
credential.modalprompt=false
credential.username=myGitUsername

Ve git pushtekrar yaptığımda sadece ilk kez kullanıcı adı ve şifre eklemek zorunda kaldım.

git push
Please enter your GitHub credentials for https://myGithubUsername@github.com/
username: myGithubUsername
password: *************
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 316 bytes | 316.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.

O zamandan beri git push, Git kimlik bilgilerimi artık girmem mesajım yok.

D:\projects\react-redux\myProject (master -> origin) (budget@1.0.0)
λ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 314 bytes | 314.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/myGitUsername/myProject.git
   8d38b18..f442d74  master -> master

Bu ayarlardan sonra şu iletiyi içeren bir e-posta aldım:

 A personal access token (git: https://myGitHubUsername@github.com/
on LAP0110 at 25-Jun-2018 09:22) with gist and repo scopes was recently added
to your account. Visit https://github.com/settings/tokens for more information.

6

Bu sorun vardı ve ben sadece git-credential-manager.exe dosyasını:

C:\Program Files\Git\mingw64\libexec\git-core

6

Kimlik bilgisi yöneticisini normal kullanım için kullanmak istedim, ancak açıkçası herhangi bir bilgi istemediğim komut dosyaları var git.exe. Git'i betiklerimden şu şekilde çağırırım:

set GIT_TERMINAL_PROMPT=0
git -c core.askpass= -c credential.helper= <command> ...

Bu şekilde komut dosyası, herhangi bir yapılandırmayı uyarlamak zorunda kalmadan her zaman "doğru" komut istemsiz ayarını görür.

(Windows 2.13.3 için Git)


Ayrıca kullanışlı olabileceğini düşündüğüm bir varyasyon ayarlamaktır:

set GCM_INTERACTIVE=never
# Or: git config --global credential.interactive never

set GIT_TERMINAL_PROMPT=0
git.exe -c core.askpass= -c credential.helper=manager <command> ...

Ama dikkat bu git.exe -c credential.interactive=never <command> ... mu değil görülüyor ki (çalışmak-c şey Windows veya ne olursa olsun Git Kimlik Yöneticisi üzerinden yönlendirilen değildir).

Bu şekilde, yapabilirsiniz GCMfW kullanmak, ancak ister asla; etkileşimli olmayan ortamlarda çok yardımcı olabilecek kimlik bilgilerini arayacaktır.


5

kullanın:

C:\Program Files\Git\mingw64\libexec\git-core                                                                       
git credential-manager uninstall --force    

Bu Windows sistemlerinde çalışır. Test ettim ve benim için çalıştı.


3

Belki de sorun Sourcetree .

  1. Git AraçlarSeçenekler

  2. "Her [10] dakikada bir güncellemeler için varsayılan kumandaları kontrol et" seçeneğinin işaretini kaldırın

  3. Sourcetree'yi yeniden başlatın!


1

ve eğer: wq benim durumum gibi çalışmıyor iptal ve çıkmak için ctrl + z kullanın ama bunlar muhtemelen daha sonra çalışmak için birden fazla yedekleme dosyası yapacak - Adeem 19 19 at 9:14

Ayrıca Git'i Yönetici olarak çalıştırdığınızdan emin olun! Aksi takdirde dosya kaydedilmez (benim durumumda).


1

Aynı sorunu Ubuntu 18.10'da (Kozmik Mürekkepbalığı) da kullandım, normal bir yöntemle kaldıramadım. Kullandım git config --global --unset credential.helperve bu hile gibi görünüyordu.


1

"User" klasörü c: // user altında, ".gitconfig" dosyasına bakın ve http ve proxy satırını kaldırın.


1

İletişim kutusunun kullanımını önlemek için git config --global credential.modalPrompt false, sorgular konsola yönlendirilir.


0

Kimlik Bilgisi Yöneticisi'ni silebilirsiniz.

C:\Users\<USER>\AppData\Local\Programs\Git\mingw64\libexec\git-core
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.