【问题标题】:Get remote HEAD with libgit2?使用 libgit2 获取远程 HEAD?
【发布时间】:2013-03-19 18:12:04
【问题描述】:

我似乎无法弄清楚如何将git_reference * 发送到特定遥控器的 HEAD。

我有:

git_repository * repo = NULL;
git_reference *   ref = NULL;

/* ...load repository... */

if(git_reference_lookup(&ref, repo, "remotes/origin/HEAD"))
    printf("Error obtaining reference to remote HEAD!");

应用程序运行时显示错误消息,表示未找到引用。但是,远程 HEAD 确实存在:

$: 查找 .git/refs/*
.git/refs/heads
.git/refs/heads/master
.git/refs/remotes
.git/refs/remotes/origin
.git/refs/remotes/origin/HEAD
.git/refs/tags

为什么我无法获得远程 HEAD 的git_reference *

【问题讨论】:

    标签: head git-remote libgit2


    【解决方案1】:

    您需要指定引用的完整路径。例如:

    int error = git_reference_lookup(&ref, repo, "refs/remotes/origin/HEAD");
    

    libgit2 无法为您添加 refs/ 前缀,否则您将无法在其他地方打开引用,尤其是 HEAD 引用。

    【讨论】:

    • 啊,好的-感谢您的澄清!我实际上只是回到这个问题来发布一个回答说同样的话。我使用git_reference_list() 枚举存储库中的所有引用,并能够从那里获取要使用的正确字符串。
    猜你喜欢
    • 1970-01-01
    • 2019-03-13
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 2011-09-19
    相关资源
    最近更新 更多