Jak wyłączyć Git Credential Manager dla Windows?


170

Zauważyłem, że w najnowszej wersji Gita domyślnie wyświetla się teraz okno dialogowe „Git Credential Manager for Windows” zamiast za każdym razem pytać mnie o hasło w odpowiedzi na monit Bash.

Naprawdę nienawidzę tego zachowania. Jak mogę go po prostu wyłączyć i za każdym razem wrócić do wprowadzania hasła w powłoce Bash?

Nawiasem mówiąc, nie chcę, aby Git buforował moje poświadczenia w jakikolwiek sposób , czy to za pośrednictwem poświadczeń systemu Windows, czy jakiegoś wewnętrznego demona. Chcę wyłączyć całe buforowanie poświadczeń .

Odpowiedzi:


211

OK, odkryłem, że musisz albo unikać zaznaczania pola wyboru „Git Credential Manager” podczas instalatora Git for Windows, albo (po instalacji) uruchomić powłokę Bash jako Administrator i użyć git config --edit --systemdo usunięcia helper = managerlinii, aby nie była już zarejestrowana jako pomocnik poświadczeń.

Aby otrzymać punkty bonusowe, użyj git config --edit --globali wstaw:

[core]
    askpass =

Aby wyłączyć również wyskakujące okienko poświadczeń OpenSSH.


19
Dzięki za odpowiedź. Dla mnie był to pierwszy raz, kiedy użyłem edytora. Jeśli chcesz zapisać zmiany, naciśnij klawisz Escape i wpisz: wq i naciśnij Enter (zapisz / zapisz i zakończ).
Ben Besuijen

1
Wielkie dzięki! Menedżer poświadczeń pomylił się z serwerem proxy mojej pracy i praca z Sourcetree stała się koszmarem. Wyłączenie go natychmiast rozwiązało problem.
Johnny

1
a jeśli: wq nie działa tak jak w moim przypadku, użyj ctrl + z do przerwania i zakończenia, ale prawdopodobnie utworzą one wiele plików kopii zapasowej do późniejszej pracy
Adeem

37
Albo znokautowaćgit config --system --unset credential.helper
Benem Butzerem

4
Dla tych, którzy używają SourceTree, upewnij się, że używana jest "systemowa" wersja GIT, a nie osadzona. Tools -> Options -> Git.
Stevanicus

30

Udało mi się odinstalować Git Credential Manager dla Windows przy użyciu opcji odinstalowania:

git-credential-manager.exe uninstall

Uruchom to polecenie w C:\Program Files\Git\mingw64\libexec\git-core


1
To tylko się zatrzymuje i po naciśnięciu ctrl-c wypluwa to użycie:git credential [fill|approve|reject]
ScottN

2
@ScottN biegasz, git-credential.exeale musisz biec git-credential-manager.exe.
Aidan Ryan

13

Inna opcja, której musiałem użyć z VSTS:

git config credential.modalprompt false --global


3
Dzięki! Okazało się, że jest to bardzo przydatne, gdy używam ssh do zdalnego łączenia się z moim serwerem produkcyjnym: nie mogłem zrobić z git pullpowodu wyrzucania WCM. Dzięki tej opcji cieszę się z obu światów: WCM po fizycznym połączeniu z serwerem (lub z Pulpitem Zdalnym) i możliwości ściągania z klienta ssh.
cbuchart

9

To nie zadziałało dla mnie:

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...

Ale z --forceflagą zadziałało:

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...

Widziałem ten ślad po uruchomieniu:

set git_trace=1

Dodałem również nazwę użytkownika Git:

git config --global credential.username myGitUsername

Następnie:

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

Na koniec wstawiłem to polecenie:

git config --global credential.modalPrompt false

Sprawdzam, czy agent SSH działa - otwórz okno Bash, aby uruchomić to polecenie

eval "$(ssh-agent -s)"

Następnie w folderze users / yourName, w którym znajduje się plik .ssh, dodaj połączenie (nadal w Bash):

ssh-add .ssh/id_rsa

or

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

Sprawdziłem wszystkie ustawienia, które dodałem powyżej:

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

A kiedy to zrobiłem git pushponownie, musiałem dodać nazwę użytkownika i hasło tylko za pierwszym razem.

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.

Od tego czasu git pushnie mam już wiadomości o wpisywaniu moich danych logowania Git.

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

Po tych ustawieniach otrzymałem również e-mail z wiadomością:

 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

Miałem ten problem i usunąłem tylko plik git-credential-manager.exe z:

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

6

Chciałem używać menedżera poświadczeń do normalnego użytku, ale mam skrypty, w których oczywiście nie chcę żadnych monitów git.exe. Oto jak wywołuję Git z moich skryptów:

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

W ten sposób skrypt zawsze widzi „prawidłowe” ustawienie braku monitu bez konieczności dostosowywania jakiejkolwiek konfiguracji.

(Git dla Windows 2.13.3)


Odmiana, która może się również przydać, to ustawienie:

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> ...

Ale pamiętaj, że git.exe -c credential.interactive=never <command> ... to nie działa (wydaje się, że -crzecz nie jest kierowana do Git Credential Manager dla Windows lub cokolwiek innego).

W ten sposób możesz użyć GCMfW, ale nigdy Cię to nie monituje; po prostu wyszuka poświadczenia, co może być bardzo pomocne w środowiskach nieinteraktywnych.


5

Posługiwać się:

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

Działa to w systemach Windows. Przetestowałem to i zadziałało.


3

Może problem tkwi w Sourcetree .

  1. Przejdź do NarzędziaOpcje

  2. Odznacz „Sprawdzaj domyślne piloty pod kątem aktualizacji co [10] minut”

  3. Uruchom ponownie Sourcetree!


1

a jeśli: wq nie działa tak jak w moim przypadku, użyj ctrl + z do przerwania i zakończenia, ale prawdopodobnie utworzą one wiele plików kopii zapasowych do pracy później - Adeem 19 stycznia o 9:14

Pamiętaj też, aby uruchomić Git jako administrator! W przeciwnym razie plik nie zostanie zapisany (w moim przypadku).


1

Uderzyłem w ten sam problem w Ubuntu 18.10 (Cosmic Cuttlefish), nie mogąc usunąć przy użyciu żadnych normalnych środków. Użyłem git config --global --unset credential.helperi wydawało się, że to wystarczy.


1

W folderze „user” c: // user, spójrz na plik „.gitconfig”, a następnie usuń linię http i proxy.


1

Aby zapobiec używaniu okna dialogowego git config --global credential.modalPrompt false, spowoduje to kierowanie zapytań do konsoli.


0

możesz po prostu usunąć menedżera poświadczeń.

C:\Users\<USER>\AppData\Local\Programs\Git\mingw64\libexec\git-core
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.