所以我使用一些libgit2函数连接到遥控器并执行git push。我想推送到私有存储库,所以我必须设置凭据。
但是,例如,当我通过git命令使用私有存储库并且我想第一次连接到此存储库时,我输入凭据......但之后,如果我想推送第二次,第三次或者,当我重新启动计算机时,我不必再次写入凭据。在我看来,有一些地方“知道存储库”与他们的凭据一起存储。
我的问题是,有没有办法用libgit2做到这一点? 我的意思是,有没有办法在不设置凭据的情况下推送到“已知”私有远程存储库? “已知”是指我已经使用的存储库,因此我已经设置了凭据
我想使用许多不同的存储库,每个存储库都有自己的凭据,因此我不希望每次推送都手动设置凭据。
当我在没有设置凭据的情况下执行推送(按下“已知”仓库)时,会显示此错误消息
请求失败,状态代码为:401
有没有办法,每次推送时如何不设置凭证?
答案 0 :(得分:1)
命令行git有一组凭据帮助程序,可以使用本机平台API安全地存储凭据。有证书助手在Mac上使用Keychain,在Windows上使用Windows Credential Manager,在Linux上使用gnome-keyring和libsecret。有关详细信息,请参阅the chapter on credential helpers in the git book。
Libgit2没有用于安全存储密码的类似抽象。也许它应该。相反,您的应用程序可以调整不同的本机API来存储密码,然后根据用户名和主机名参数将它们提供给libgit2凭证回调。