我注意到,在最新版本的Git中,默认现在是弹出一个“Git凭证管理器for Windows”对话框,而不是每次在Bash提示符中提示我输入密码。

我真的很讨厌这种行为。我如何禁用它,然后回到每次在Bash shell中输入密码?

顺便说一下,我不希望Git以任何方式缓存我的凭据,无论是通过Windows凭据还是一些内部守护进程。我想禁用所有凭据缓存。


好吧,我发现你需要避免在Git for Windows安装过程中选中“Git Credential Manager”复选框,或者(在安装之后)以管理员身份运行Bash shell,并使用Git config——edit——system删除helper = Manager行,以便它不再注册为凭据助手。

为了加分,使用git config -edit -global并插入:

[core]
    askpass =

要禁用OpenSSH凭证也弹出。


如果:wq不像我的情况下,使用ctrl+z中止和退出,但这些可能会使多个备份文件工作稍后- Adeem 1月19日9:14

另外,一定要以管理员身份运行Git !否则文件将不会被保存(在我的情况下)。


我可以使用卸载选项卸载Git Credential Manager for Windows:

git-credential-manager.exe uninstall

在C:\Program Files\Git\mingw64\libexec\git-core中执行该命令


我不得不使用VSTS的另一个选项:

Git配置——全局凭据。modalprompt假


我曾经有过这个问题,我只删除了git-credential-manager.exe文件:

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

我想使用凭据管理器进行正常使用,但我有脚本,我显然不希望从git.exe中得到任何提示。这是我如何从我的脚本调用Git:

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

这样,脚本总能看到“正确的”无提示设置,而不必调整任何配置。

(Git for 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 <命令>… 不工作(似乎-c的东西没有路由到Git凭证管理器的Windows或其他)。

这样,您可以使用GCMfW,但它永远不会提示您;它将只查找凭据,这在非交互式环境中非常有用。


这对我不起作用:

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

然后在。ssh所在的计算机用户/yourName文件夹中,添加一个连接(仍然是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推送时,我不得不第一次添加用户名和密码。

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.

我在Ubuntu 18.10 (Cosmic Cuttlefish)上遇到了同样的问题,无法使用任何正常方法删除。 我使用git config -global -unset credential。帮手,这似乎奏效了。


Use:

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

这适用于Windows系统。我测试过了,对我很有效。


也许问题出在Sourcetree上。

点击工具→选项 取消选中“每[10]分钟检查默认远程更新” 重启Sourcetree !


您可以删除凭据管理器。

C:\Users\<USER>\AppData\Local\Programs\Git\mingw64\libexec\git-core

在“user”文件夹下,c://user,,查看“。文件,然后删除HTTP和代理行。


为了防止对话,请使用git config——global credential。modalPrompt假

这将把查询驱动到控制台。


如果你注意到当你使用JetBrains IDE(如IntelliJ IDEA, PhpStorm, WebStorm, PyCharm, Rider, RubyMine, Android Studio或Goland)时弹出凭据管理器UI,请这样做:

在你的IDE中,打开菜单文件→设置→版本控制→Git。 禁用使用凭据帮助器: 别忘了按Save键。


对于前面答案中的提示无法解决的问题:

我使用

git credential-manager remove -force

如果您不想删除或卸载凭据管理器:请参阅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

证书管理器棺材上的最后一颗钉子是Martin Ba上面回答的唯一的位(GCM_INTERACTIVE):我如何禁用Windows的Git证书管理器?


Visual Studio Code: Menu File→Preferences→Configuration→GitHub→gitAuthentication: false。将存储库的协议从https://更改为git://,并对git使用公钥身份验证。


我们一直在纠结这个问题。当我们试图从Git存储库克隆代码时,没有提示(要求)Git用户名和密码,它开始克隆代码,最终由于身份验证失败而失败。甚至凭证没有设置和第一次使用Git克隆。

解决方案:运行该命令,它可以完美地工作。

git config --system --unset credential.helper

我有另一个问题,设置git不提示任何密码,我学会了另一个命令行技巧,可以用于此目的。

如果你想要一个临时解决方案的终端会话,这可能会派上用场:

Git -c凭证。Helper = <其余的命令>