Как отключить Git Credential Manager для Windows?
Я заметил, что в последней версии Git по умолчанию теперь появляется диалоговое окно "Git Credential Manager для Windows" вместо того, чтобы каждый раз запрашивать у меня пароль в приглашении Bash.
Я действительно ненавижу это поведение. Как я могу просто отключить его и вернуться к вводу пароля в оболочке Bash каждый раз?
Кстати, я не хочу, чтобы Git кэшировал мои учетные данные каким-либо образом, будь то учетные данные Windows или какой-либо внутренний демон. Я хочу отключить все кэширование учетных данных.
Ответы
Ответ 1
Хорошо, я обнаружил, что вам нужно либо не устанавливать флажок "Git Credential Manager" во время установки Git для Windows, либо (после установки) запустить оболочку Bash от имени администратора и использовать git config --edit --system
для удаления helper = manager
строка helper = manager
чтобы он больше не регистрировался как помощник по учетным данным.
Для получения бонусных баллов используйте git config --edit --global
и вставьте:
[core]
askpass =
Отключить всплывающее окно с учетными данными OpenSSH тоже.
Ответ 2
Мне удалось удалить Git Credential Manager для Windows с помощью опции удаления:
git-credential-manager.exe uninstall
Запустите эту команду в C:\Program Files\Git\mingw64\libexec\git-core
Ответ 3
Еще один вариант, который мне пришлось использовать с VSTS:
git config credential.modalprompt false --global
Ответ 4
Это не сработало для меня:
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://[email protected]/
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) ([email protected])
λ 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://[email protected]/
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.
Ответ 5
Вы также можете:
- Win + R, введите "compmgmt.msc",
- выберите "Услуги и приложения" → "Услуги"
- найти там диспетчер учетных данных,
- измените Тип запуска на Отключено, остановите его, Apply и OK.
Ответ 6
У меня была эта проблема, и я только удалил файл git-credential-manager.exe из:
C:\Program Files\Git\mingw64\libexec\git-core
Ответ 7
Я хотел использовать диспетчер учетных данных для обычного использования, но у меня есть сценарии, в которых я явно не хочу никаких git.exe
от 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, но он никогда не подскажет вам; он просто ищет учетные данные, которые могут быть очень полезны в неинтерактивных средах.
Ответ 8
и если: wq не работает, как в моем случае, используйте ctrl + z для прерывания и завершения, но они, вероятно, заставят несколько файлов резервных копий работать с ними позже - Adeem Jan 19 at 9:14
Также не забудьте запустить Git в качестве администратора! В противном случае файл не будет сохранен (в моем случае).
Ответ 9
Я столкнулся с той же проблемой в Ubuntu 18.10 (Космическая Каракатица), которую я не смог удалить обычными средствами. Я использовал git config --global --unset credential.helper
, и это, похоже, git config --global --unset credential.helper
.
Ответ 10
Использование:
C:\Program Files\Git\mingw64\libexec\git-core
git credential-manager uninstall --force
Это работает в системах Windows. Я проверил это, и это сработало для меня.
Ответ 11
Может быть, проблема в Sourcetree.
-
Перейдите в Инструменты → Параметры
-
Снимите флажок "Проверять пульты по умолчанию на обновления каждые [10] минут"
-
Перезапустите Sourcetree!
Ответ 12
Блокировка экрана Windows. Теперь новый пароль потребуется для генерации. Создать новый пароль. Разблокируйте экран и введите новый пароль в
Ответ 13
Вы можете попробовать эту команду:
git config --global --unset credential.helper
https://github.com/Microsoft/Git-Credential-Manager-for-Windows/issues/24#issuecomment-145858984
Ответ 14
Вы можете просто удалить Диспетчер учетных данных.
C:\Users\\AppData\Local\Programs\Git\mingw64\libexec\ГИТ-ядро