我需要初始化一个 git 存储库并将最新版本的分支提取到其中。在 bash 中,命令是:
git init
git remote add -t $BRANCH -f origin $REMOTE
我正在尝试使用 libgit2 以编程方式执行相同的操作,但无法找到第二行的等效项。创建远程的调用很明显,但我没有看到任何将其添加到存储库或处理分支的调用。
是否可以用 libgit2 做到这一点?如果没有,是否有图书馆能够做到这一点?
最佳答案
可以找到描述如何在 libgit2 中实现获取过程的高级步骤 here .
您可以找到执行此类任务的代码示例 here 和 here 强>。请注意,随着 API 的发展,这些示例可能会有点不同步。
请注意,这些代码片段将从上游定义的远程检索所有较新的提交(分支只是指向特定提交的指针)。
到今天为止,还没有办法在 libgit2 中执行 checkout 。
如果您需要更多帮助,我会推荐这两个地方:
- libgit2 邮件列表(通过 libgit2@librelist.com)
- libgit2 issue tracker
更新
克隆功能刚刚 merged 进入 libgit2 存储库。
- clone.h 标题
- 中的示例代码用法examples/network/clone.c
作为 pull 请求的一部分,作者还负责为用户提供 checkout 实现。
- checkout.h 标题
- checkout 相关 unit tests
关于git - 如何使用 libgit2 克隆/获取 git 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8551169/