我似乎无法弄清楚如何将git_reference *
送到特定遥控器的头部。
我有:
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确实存在:
$: find .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 *
?
答案 0 :(得分:3)
您需要指定引用的完整路径。例如:
int error = git_reference_lookup(&ref, repo, "refs/remotes/origin/HEAD");
libgit2无法为您refs/
添加前缀,否则您将无法在其他位置打开引用,最明显的是HEAD
引用。