Как отключить Git Credential Manager для Windows?


170

Я заметил, что в последней версии Git по умолчанию теперь появляется диалоговое окно «Git Credential Manager для Windows» вместо того, чтобы каждый раз запрашивать у меня пароль в приглашении Bash.

Я действительно ненавижу это поведение. Как я могу просто отключить его и вернуться к вводу пароля в оболочке Bash каждый раз?

Кстати, я не хочу, чтобы Git кэшировал мои учетные данные каким-либо образом , будь то учетные данные Windows или какой-либо внутренний демон. Я хочу отключить все кэширование учетных данных .

Ответы:


211

Хорошо, я обнаружил, что вам нужно либо не устанавливать флажок «Git Credential Manager» во время установки Git для Windows, либо (после установки) запускать оболочку Bash от имени администратора и использовать git config --edit --systemдля удаления helper = managerстроки, чтобы она больше не регистрировалась как помощник по учетным данным.

Для получения бонусных баллов используйте git config --edit --globalи вставьте:

[core]
    askpass =

Чтобы отключить всплывающее окно OpenSSH учетные данные тоже.


19
Спасибо за ответ. Для меня это был первый раз, чтобы использовать редактор. Если вы хотите сохранить изменения, нажмите клавишу выхода и введите: wq и нажмите ввод (запись / сохранение и выход).
Бен Бесуйен

1
Большое спасибо! Диспетчер учетных данных запутался с прокси-сервером моей работы, и это сделало работу с Sourcetree кошмаром. Отключение исправило проблему немедленно.
Джонни

1
и если: wq не работает, как в моем случае, используйте ctrl + z для отмены и выхода, но это, вероятно, сделает несколько резервных файлов для работы позже
Adeem

37
Или выбить его с собойgit config --system --unset credential.helper
Бен

4
Для тех, кто использует SourceTree, убедитесь, что используется «системная» версия GIT, а не встроенная. Tools -> Options -> Git,
Стеваникус

30

Я смог удалить Git Credential Manager для Windows, используя опцию удаления:

git-credential-manager.exe uninstall

Запустите эту команду в C:\Program Files\Git\mingw64\libexec\git-core


1
Это просто глохнет, и после того, как я git credential [fill|approve|reject]
нажму

2
@ ScottN ты бежишь, git-credential.exeно тебе нужно бежать git-credential-manager.exe.
Эйдан Райан

13

Другой вариант, который мне пришлось использовать с VSTS:

git config credential.modalprompt false --global


3
Спасибо! Я обнаружил, что это очень полезно при использовании ssh для удаленного подключения к производственному серверу: я не смог сделать это git pullиз-за отключения WCM. С этой опцией я наслаждаюсь обоими мирами: WCM при физическом соединении с сервером (или с удаленным рабочим столом) и возможностью извлечения из ssh-клиента.
cbuchart

9

Это не сработало для меня:

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

Но с --forceфлагом это сработало:

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

Я мог видеть этот след после того, как я бегу:

set git_trace=1

Также я добавил имя пользователя Git:

git config --global credential.username myGitUsername

Затем:

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

В конце я вставил в эту команду:

git config --global credential.modalPrompt false

Я проверяю, работает ли агент SSH - откройте окно Bash для запуска этой команды

eval "$(ssh-agent -s)"

Затем в папке users / yourName компьютера, где находится .ssh, добавьте соединение (все еще в Bash):

ssh-add .ssh/id_rsa

or

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

Я проверил все настройки, которые я добавил выше:

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

И когда я сделал это git pushснова, мне пришлось добавить имя пользователя и пароль только в первый раз.

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.

С тех пор git push, как я использую , у меня больше нет сообщения для ввода учетных данных 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

После этих настроек я тоже получил электронное письмо с сообщением:

 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

У меня была эта проблема, и я только удалил файл git-credential-manager.exe из:

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

6

Я хотел использовать диспетчер учетных данных для обычного использования, но у меня есть сценарии, в которых мне явно не нужны никакие подсказки git.exe. Вот как я вызываю Git из моих скриптов:

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

Таким образом, скрипт всегда видит «правильную» настройку без запроса, не изменяя конфигурацию.

(Git для Windows 2.13.3)


Я нашел вариант, который также может пригодиться:

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

Но обратите внимание, что git.exe -c credential.interactive=never <command> ... это не работает (кажется, что эта -cштука не перенаправляется в Git Credential Manager для Windows или что-то еще).

Таким образом, вы можете использовать GCMfW, но он никогда не подскажет вам; он просто ищет учетные данные, которые могут быть очень полезны в неинтерактивных средах.


5

Использование:

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

Это работает в системах Windows. Я проверил это, и это сработало для меня.


3

Может быть, проблема в Sourcetree .

  1. Перейдите в ИнструментыПараметры

  2. Снимите флажок «Проверять пульты по умолчанию на обновления каждые [10] минут»

  3. Перезапустите Sourcetree!


1

и если: wq не работает, как в моем случае, используйте ctrl + z для отмены и выхода, но это, вероятно, сделает несколько резервных файлов для работы позже - Adeem 19 января в 9:14

Также обязательно запустите Git от имени администратора! В противном случае файл не будет сохранен (в моем случае).


1

Я столкнулся с той же проблемой в Ubuntu 18.10 (Космическая каракатица), которую я не смог удалить обычными средствами. Я использовал git config --global --unset credential.helper, и это, казалось, добилось цели.


1

В папке «user» c: // user посмотрите файл «.gitconfig», затем удалите строку http и прокси.


1

Чтобы предотвратить использование диалога git config --global credential.modalPrompt false, это приведет запросы к консоли.


0

Вы можете просто удалить Диспетчер учетных данных.

C:\Users\<USER>\AppData\Local\Programs\Git\mingw64\libexec\git-core
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.