我正在使用 Cygwin 和 Git。每次我使用 https url 推送/拉取 Bitbucket 上的存储库时,都会要求我输入密码。 有没有办法存储这些凭据(例如使用 ssh 密钥)?
我尝试安装 Windows Credential Store for Git 但我无法让它与 cygwin 的 Git 一起使用。
谢谢!
更新:
我在这里找到了答案:在 GitHub 上使用 https:// 时有没有办法跳过密码输入?
总结:
记住密码 15 分钟(默认):
git config --global credential.helper cache
记住密码 10 小时:
git config --global credential.helper 'cache --timeout=36000'
存储密码(没有尝试过):
git config --global credential.helper store
重置:
git config --unset --global credential.helper
西姆
OP回答自己问题的方式是解决这个问题的一种方法。
Windows Credential Store 项目于 2015 年停止。其原始作者建议使用由 Microsoft 维护的Git Credential Manager for Windows。他们的安装程序专注于 Git for Windows,但是该程序本身可以与 Cygwin 配合使用,您只需手动安装即可。
转到 GCMW 的最新版本,下载 zip 文件(不是安装程序),将其内容(仅需要
.dll
和 .exe
文件)解压到 C:\cygwin\usr\libexec\git-core\
(对于 32 位 Cygwin)或 C:\cygwin64\usr\libexec\git-core\
(对于 32 位 Cygwin) 64 位 Cygwin。 参考
要让 git 使用 GCMW,请执行:
git config --global credential.helper manager
要获取 GUI 提示输入凭据,请执行:
git config --global credential.modalprompt true
如果您希望这是每个存储库的设置,请删除
--global
选项。
我使用 cygwin 制作了 Windows Credential Store。唯一需要更改的是全局 ~/.gitconfig 文件。
将通常位于文件末尾的“helper”值更改为以下内容:
[credential]
helper = !'/cygdrive/C/Users/<YOUR-ACCOUNT-NAME>/AppData/Roaming/GitCredStore/git-credential-winstore.exe'
作为解释,cygwin 只是使用不同的路径,并且值当然必须遵循规则。
对 Gene Pavlovsky 的回答(及其评论)的补充:
我们可以将 .exe 文件符号链接到
/usr/libexec/git-core
,而不是将一大堆文件直接安装到文件夹中。
D:\path\to\gcm
git-credential-manager.exe
到/usr/libexec/git-core
:
ln -s /cygdrive/d/path/to/gcm/git-credential-manager.exe /usr/libexec/git-core/git-credential-manager.exe
这样我们可以保持
git-core
目录整洁,并使更新/卸载过程变得容易。