Git Credential Manager如何区分不同的服务器?

时间:2018-05-02 07:51:40

标签: git git-credential-manager

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

1 个答案:

答案 0 :(得分:1)

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

enter image description here

有关确切工作流程的更多详细信息来自here

  

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

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

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

会明确告诉所有存储库使用Integrated / NTLM,而不是让用户输入用户名/密码(甚至不输入一次)。显然,将myserver.com更改为您自己的域。这还具有在用户必须更新密码时不会中断的附加优点。否则,他们将不得不从凭据管理器中手动删除/修改凭据。