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

Я заметил, что в последней версии Git по умолчанию теперь появляется диалоговое окно "Git Credential Manager для Windows" вместо того, чтобы каждый раз запрашивать у меня пароль в приглашении bash. Я действительно ненавижу это поведение. Как я могу просто отключить его и каждый раз возвращаться к вводу пароля в оболочке bash?

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

20 ответов

Решение

Хорошо, я обнаружил, что вам нужно либо ИЗБЕЖАТЬ, установив флажок "Git Credential Manager" во время установки Git для Windows, либо (после установки) запустить bash shell от имени администратора и использовать git config --edit --system удалить helper = manager линии, чтобы он больше не регистрировался как помощник по учетным данным.

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

[core]
    askpass =

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

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

git-credential-manager.exe uninstall

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

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

git config credential.modalprompt false --global

Для меня не сработало

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.

Я положил это, потому что для меня работал. Надеюсь, это поможет и другим.

Я хотел использовать диспетчер учетных данных для обычного использования, но у меня есть сценарии, где я, очевидно, не хочу никаких запросов от 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-for-Windows или что-то еще).

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

Вы также можете:

  1. win + R, введите "compmgmt.msc",
  2. выберите "Услуги и приложения" -> "Услуги"
  3. найти там диспетчер учетных данных,
  4. Измените тип запуска на Отключено, остановите его, Примените и OK

Если вы заметили, что пользовательский интерфейс диспетчера учетных данных появляется при использовании IDE JetBrains (например, IntelliJ IDEA, PhpStorm, WebStorm, PyCharm, Rider, RubyMine, Android Studio или Goland), сделайте следующее:

  1. В вашей среде IDE перейдите в File | Настройки | Контроль версий | Git.

  2. Отключить использование помощника по учетным данным:

  3. Не забудьте нажать Сохранить.

C:\Program Files\Git\mingw64\libexec\git-core
удаление учетных данных менеджера git --force

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

Мы боролись с этим вопросом. Пока мы пытались клонировать код из репозитория GIT, без запроса [Запрос] на имя пользователя и пароль GIT он начал клонировать код и, наконец, потерпел неудачу из-за сбоя аутентификации. Даже учетные данные не установлены и используется первый клон GIT.

Решение: запустите команду, и она будет работать нормально.

git config --system --unset credential.helper

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

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

Довольно старая тема, но, возможно, это поможет тем, кто ищет проблему, когда приведенные выше советы не решают ее.

я использую

git credential-manager remove -force

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

  1. Перейти к инструментам -> параметры

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

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

Если вы не хотите удалять или удалять диспетчер учетных данных: см. Https://serverfault.com/questions/544156/git-clone-fail-instead-of-prompting-for-credentials/1054253#answer-1054253 для решение, которое сработало для меня.

Пояснения и т. Д. На этой странице (ссылки для предотвращения дублирования контента в одном семействе веб-сайтов).


TL;DR: теперь это находится поверх моего автоматизированного bash скрипты:

      # https://serverfault.com/questions/544156/git-clone-fail-instead-of-prompting-for-credentials
export GIT_TERMINAL_PROMPT=0
# next env var doesn't help...
export GIT_SSH_COMMAND='ssh -oBatchMode=yes'
# these should shut up git asking, but only partly: the X-windows-like dialog doesn't pop up no more, but ...
export GIT_ASKPASS=echo
export SSH_ASKPASS=echo
# We needed to find *THIS* to shut up the bloody git-for-windows credential manager: 
# https://stackoverflow.com/questions/37182847/how-do-i-disable-git-credential-manager-for-windows#answer-45513654
export GCM_INTERACTIVE=never

Окончательный гвоздь в гроб этого менеджера мандатной был уникальный бит ( GCM_INTERACTIVE) в ответе Мартина Ба выше: Как отключить Git Credential Manager для Windows?

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

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

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

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

C: \ Users \\ AppData \ Local \ Programs \ Git \ mingw64 \ libexec \ ГИТ-ядро

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

У меня была еще одна проблема, чтобы установить git не запрашивать пароль, я узнал еще один трюк с командной строкой, который можно использовать для этой цели.

Если вам нужно временное решение для сеанса терминала, над которым вы работаете, это может пригодиться:

git -c credential.helper= <rest of the commands>

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

VSCode -> Настройки -> Конфигурация -> github -> gitAuthentication: false. Измените форму протокола репозитория https: // на git: // и используйте аутентификацию с открытым ключом на git.

Другие вопросы по тегам