Jer*_*yal 17 git git-credential-manager
我有两个 GitHub 帐户(工作帐户和个人帐户),我希望将其凭据安全地存储在 Windows 10 中。
git config --global credential.helper manager
仅设置一个用户名和密码,这在我的个人帐户的存储库和我的工作帐户的存储库之间发生冲突。这两个存储库都是使用 HTTPS 克隆的。
我想存储和访问不同的凭据,可能基于存储库用户名。是否可以?
我知道 SSH 是一个选项,但我想知道如何为 HTTPS 执行此操作。
Mic*_*ael 17
您可以通过三种不同的方式来执行此操作,具体取决于您的特定目标和情况:
useHttpPath
。443
。在 Bitbucket 上,您可以将用户名添加到远程的 HTTPS URL:
状态 | 远程网址 |
---|---|
前 | https://bitbucket.org/path/repo.git |
后 | https://JerryGoyal@bitbucket.org/path/repo.git |
由于 URL 在技术上是不同的,因此如果需要,您可以将工作和个人分支添加为同一存储库的远程版本。该技术也适用于 GitHub,但其他存储库主机可能不支持它。
useHttpPath
为主机设置Git Credential Manager可以根据完整 URL 选择凭据,而不是通过主机名共享它们。
credential.useHttpPath
告诉 Git 在调用凭证提供程序时传递整个存储库 URL,而不仅仅是主机名。(此设置来自 Git 本身,而不是 GCM。)
默认为
false
.
如果您想对同一远程使用多个远程凭据,则第二种方法不起作用。但是,如果您对不同的遥控器有不同的 URL,那么即使来自单个本地存储库,它也应该可以正常工作。
这通常是最有用的模式useHttpPath
。要设置所有 Bitbucket 远程 URL 的选项,请运行以下命令:
git config --global credential.https://bitbucket.org.useHttpPath true
Run Code Online (Sandbox Code Playgroud)
适用于 Windows 的 GituseHttpPath
开箱即用即可启用 Azure Repos。etc/gitconfig
您可以在安装位置亲自查看它。
[credential "https://dev.azure.com"]
useHttpPath = true
Run Code Online (Sandbox Code Playgroud)
正如rjmunro所指出的,您可以--global
只使用当前存储库的路径。如果是这样,您也可以删除主机名:
git config credential.useHttpPath true
Run Code Online (Sandbox Code Playgroud)
然后,主机的存储库将默认使用共享主机凭据,但此存储库将使用完整的 URL 路径来保存和加载其凭据。
从技术上讲,您可以强迫自己为每个远程存储库单独添加凭据。这是不必要的冗长,但这个答案显示了如何:
git config --global credential.useHttpPath true
Run Code Online (Sandbox Code Playgroud)
ssh
,但端口 22 被阻止如果您只是因为防火墙问题超出您的控制范围而询问 HTTPS,您可能会对我针对支持端口 443 的某些 Git 提供商使用端口 443 的类似问题的回答感兴趣。
小智 -5
每个主机(或 URI)不能有多个用户名。据我所知,就目前而言,SSH 是最直接的,可以做你想做的事情。
有关更多信息,您可以查看 VonC 对与您的问题非常相似的问题的回答。GitHub:Windows 上两个帐户的单独凭据
归档时间: |
|
查看次数: |
22272 次 |
最近记录: |