【问题标题】:setting credentials just for the first time (libgit2)第一次设置凭据(libgit2)
【发布时间】:2017-05-24 11:18:49
【问题描述】:

所以我使用了一些 libgit2 函数来连接远程并执行 git push。我想推送到私有仓库,所以我必须设置凭据。

但是,例如,当我通过 git 命令使用私有存储库并且我想第一次连接到此存储库时,我输入凭据...但之后,如果我想第二次、第三次推送左右,我不必再次编写该凭据,当我重新启动计算机时也是如此。在我看来,有些地方存储了“已知存储库”及其凭据。

我的问题是,有没有办法用 libgit2 做到这一点? 我的意思是,有没有办法在不设置凭据的情况下推送到“已知”的私有远程存储库? “已知”是指我已经使用过的存储库,因此我已经设置了凭据

我想使用许多不同的存储库,每个存储库都有自己的凭据,所以我不想每次推送时都手动设置凭据。

当我在不设置凭据的情况下执行推送(推送到“已知”仓库)时,会显示此错误消息

请求失败,状态码:401

那么有没有办法,每次推送时如何不设置凭据?

【问题讨论】:

    标签: c++ libgit2


    【解决方案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 凭据回调。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-04
      • 2011-04-30
      • 1970-01-01
      • 2019-10-18
      • 1970-01-01
      • 1970-01-01
      • 2015-07-01
      • 1970-01-01
      相关资源
      最近更新 更多