在 shell 上我可以使用 bash git 执行以下操作
mkdir -p /tmp/REPO/ROOT && pushd /tmp/REPO/ROOT && git init && git checkout -b anyName
如上面的总结,在给定路径初始化本地 git 存储库并创建一个分支“anyName”。请注意,存储库中还没有提交历史记录。
但是在libgit2中,要创建一个分支,我需要提交,API如下https://libgit2.org/libgit2/#HEAD/group/branch/git_branch_create
int git_branch_create(git_reference **out, git_repository *repo, const char *branch_name, const git_commit *target, int force);
它需要一个 git_commit ,它将基于哪个分支。
有没有办法实现类似于 bash/cmd git cli 支持的功能?
我还没有尝试过,但我认为你想在调用 git_repository_init_ext 时设置initial_head:
https://libgit2.org/libgit2/#HEAD/type/git_repository_init_options