如何使用libgit2库创建分支,API引用了提交目标,但我应该对此参数使用什么?
这是我到目前为止所获得的代码,基于测试中的示例代码,但它们使用了许多硬编码引用,因此难以发现在现实场景中应该使用的内容,例如我应该作为'target传递的内容'在这种情况下。
git_reference *branch = NULL, *head = NULL;
/* Create the branch */
git_branch_create( &branch, open_repo, "MyNewBranch", target, 0 );
/* Make HEAD point to this branch */
git_reference_symbolic_create( &head, open_repo, "HEAD", git_reference_name( branch ), 1 );
git_reference_free( head );
git_reference_free( branch );
答案 0 :(得分:3)
在这个例子中我应该作为'目标'传递。
您希望新分支指向的已解决提交。
如 header
中所述@param target 此分支应指向的对象。此对象 必须属于给定的
repo
,并且可以是git_commit或a git_tag。当git_tag被传递时,它应该是可解除引用的 到git_commit,哪个oid将被用作分支的目标。
注意:令人惊讶的是,标头与代码不同步。标题使读者认为传递git_object
会很好。但是,只接受git_commit
。
我将如何得到'已解决的提交';
git_commit_lookup()
将是您要走的路。 git_object
恰好是提交(git_object_type()
返回GIT_OBJ_COMMIT
),您可以直接投放并通过(git_commit *)my_object
功能。