Git凭据管理器如何区分不同的服务器?

Git凭据管理器如何区分不同的服务器?,git,git-credential-manager,Git,Git Credential Manager,当我使用Git连接到TFS服务器时,会弹出一个Microsoft登录框。但是,当我连接到GitHub服务器时,它会为GitHub引发一个不同的登录对话框。我想知道Git Credential Manager使用什么条件来控制其弹出框。它是服务器。服务器返回值是多少?主机名?它基于URL。打开凭据管理器,您将看到如下内容: 有关确切工作流程的更多详细信息,请访问: 经理流程: git credential找到该credential.helper=manager并使用“get”选项调用git cr

当我使用Git连接到TFS服务器时,会弹出一个Microsoft登录框。但是,当我连接到GitHub服务器时,它会为GitHub引发一个不同的登录对话框。我想知道Git Credential Manager使用什么条件来控制其弹出框。它是服务器。服务器返回值是多少?主机名?

它基于URL。打开凭据管理器,您将看到如下内容:

有关确切工作流程的更多详细信息,请访问:

经理流程:
git credential找到该credential.helper=manager并使用“get”选项调用git credential manager。
git凭据管理器缺少+的凭据。 git credential manager查看configuration+,以确定这些是基本凭据、VSO m-factor还是GitHub 2-factor身份验证。
对于基本凭据,git credential manager会告诉git credential事实,它没有任何凭据。
git credential然后在命令行提示用户输入凭据。
用户输入凭据。
git credential使用store选项调用git credential manager,并为存储提供凭据

进一步可以帮助您设置特定的授权方法,即,如果我想使用NTLM授权与TFS托管的git repo的通信,我会输入

git config --system credential.myserver.com.authority Integrated 

这将明确告诉所有回购协议使用Integrated/NTLM,而不是让用户输入用户名/密码(甚至一次也不输入)。显然,将myserver.com更改为您自己的域。这还有一个额外的优点,即当用户必须更新密码时不会中断。否则,他们必须从凭证管理器中手动删除/修改凭证。

您提到了一个弹出框,所以您正在使用一些Git GUI工具,不是吗?连接到服务器时,该工具必须知道url,其中包含有关传输协议、服务器地址和存储库路径的信息。如果需要,服务器会要求提供凭据。谢谢,如果我理解正确,您想说不同的登录框由服务器决定。如果我想登录到服务器,我如何确定是否使用不同的登录方法,是否使用服务器的主机,或者Git提供一些判断接口?