使用Cygwin的Git存储https密码

37

我正在使用Cygwin和Git。每次我用https网址向Bitbucket上的repo推送/拉取时,都会要求我输入密码。 有没有一种方法可以存储这些凭据(就像使用ssh密钥一样)?

我尝试安装Git的Windows凭据存储,但无法与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

Cim


2
下次如果你找到了答案,就写下来回答自己的问题(这样做是可行的,也是一个好习惯),而不是编辑问题并将答案放入其中。 - RubenLaguna
1
我尝试了“存储密码”选项,它可以正常工作,即使重新启动cygwin也是如此。没有尝试更多。 - Michele Di Cosmo
2个回答

31

OP回答自己的问题的方式是解决问题的一种方式。

Windows Credential Store项目在2015年已经停止。其原作者建议使用由Microsoft维护的Git Credential Manager for Windows,他们的安装程序专注于Git for Windows,但该程序也可以很好地与Cygwin配合使用,只需手动安装即可。

前往GCMW的最新版本发布,下载zip文件(不是安装器),将其内容提取出来(只需要.dll.exe文件),放到32位Cygwin中的C:\cygwin\usr\libexec\git-core\或64位Cygwin中的C:\cygwin64\usr\libexec\git-core\中。参考

要让git使用GCMW,执行:git config --global credential.helper manager

要获取凭据的GUI提示,请执行:git config --global credential.modalprompt true

如果您想将此设置为每个存储库的设置,请删除--global选项。


5
最后一个提示:在将这些文件复制到“git-core”目录之后,确保使用命令chmod a+x *.{exe,dll}来赋予它们可执行权限。否则,当尝试使用git-credential-manager.exe时会出现类似“'credential-manager'不是git命令”的错误提示,因为该文件没有可执行权限。 - joelhardi
这个解决方案同样适用于MSYS2。将*.dll*.exe转储到的路径是C:\msys64\usr\lib\git-core - Daniel
4
GCMFW现在已经过时了,或许很快就会过时。以下微调的解决方案适用于新的跨平台git-credential-manager-core。从Git凭证管理器核心zip中移动所有exe/dll,然后只需使用git config --global credential.helper manager-core命令。新的实用程序在这里:https://github.com/microsoft/Git-Credential-Manager-Core/releases - Naxin
2023年更新:解决方案仍然有效,但是除了EXE和DLL文件之外,您还需要复制*.config文件。 - PKua

19

我让Windows凭证存储能够在cygwin环境下工作。唯一需要更改的是全局 ~/.gitconfig文件。

将“helper”值更改为以下内容,通常可以在文件末尾找到:

[credential]
    helper = !'/cygdrive/C/Users/<YOUR-ACCOUNT-NAME>/AppData/Roaming/GitCredStore/git-credential-winstore.exe'

简单来说,Cygwin使用不同的路径,因此该值必须遵循相应的规则。


这非常宝贵,谢谢!每个人都要确保安装了Cygwin的Git(通过Cygwin安装程序)。否则,您将无法使此解决方案正常工作。 - Riscie
6
对我有帮助!但是我使用的是更新的git-credential-manager,我的路径略有不同:!'/cygdrive/C/Users/<YOUR-ACCOUNT-NAME>/AppData/Local/Programs/Microsoft Git Credential Manager for Windows/git-credential-manager.exe'翻译后: 对我有用!但是我使用了更新的 git-credential-manager,而且我的路径略有不同:!'/cygdrive/C/Users/<你的账户名>/AppData/Local/Programs/Microsoft Git Credential Manager for Windows/git-credential-manager.exe' - theDrake

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接