如何在 libgit2 中创建轻量级标签

how to create lightweight tag in libgit2

本文关键字:创建 轻量级 标签 libgit2      更新时间:2023-10-16

我想创建轻量级标签(无注释(。我读了这个

https://ben.straub.cc/2013/06/03/refs-tags-and-branching/

在我看来,我所要做的就是创造参考。但是怎么做呢?我尝试了这样的事情,但 git_reference_create(( 返回GIT_EINVALIDSPEC

    git_reference * out;
    tag_name = "refs/tags/v1.0";
    git_revwalk *walker;
    git_revwalk_new(&walker, repo);
    git_revwalk_push_ref(walker, tag_name.c_str());
    git_oid id;
    git_revwalk_next(&id, walker);
    if (git_reference_create(&out, repo, tag_name.c_str(),&id, true,NULL) != 0) cerr << "error creating reference : " << tag_name << endl;
    git_revwalk_free(walker);
    git_reference_free(out);

我明白了

    git_reference * out;
    git_oid oid;
    tag_name = "refs/tags/v1.0";
    if (git_reference_name_to_id(&oid, repo, "HEAD")!=0) cerr << "error git_reference_name_to_id()" << endl;
    if (git_reference_create(&out, repo, tag_name.c_str(), &oid, true, NULL)!= 0) cerr << "error creating reference : " << tag_name << endl;
    git_reference_free(out);