Як відключити Git Credential Manager для Windows?


170

Я зауважую, що в останній версії Git тепер за замовчуванням з'являється діалогове вікно "Диспетчер даних Git для 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
Дякую за відповідь Для мене це було вперше використати редактор. Якщо ви хочете зберегти зміни, натисніть клавішу Escape і введіть: wq і натисніть клавішу Enter (запишіть / збережіть і вийдіть).
Ben Besuijen

1
Велике дякую! Менеджер облікових даних заплутався в проксі-сервері моєї роботи, і це зробило роботу з Sourcetree кошмаром. Відключивши це, виправили проблему негайно.
Джонні

1
і якщо: wq не працює як у моєму випадку, використовуйте ctrl + z для переривання та виходу, але вони, ймовірно, зроблять кілька файлів резервної копії для роботи пізніше
Adeem

37
Або вибити його зgit config --system --unset credential.helper
Бен Бутцер

4
Для тих, хто використовує SourceTree, переконайтеся, що використовується "системна" версія GIT, а не вбудована. Tools -> Options -> Git.
Стеванік

30

Мені вдалося видалити диспетчер даних Git Credential для Windows, використовуючи опцію видалення:

git-credential-manager.exe uninstall

Запустіть цю команду в C:\Program Files\Git\mingw64\libexec\git-core


1
Це просто зупиняється, і після того, як я натискаю ctrl-c, випльовує це використання:git credential [fill|approve|reject]
ScottN

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)"

Потім у папку користувачів комп’ютера / папкуName, де .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-poverljiv-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 та proxy line.


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.