使用libgit2c克隆、拉取、提交和推送

使用libgit2c克隆、拉取、提交和推送,c,git,libgit2,C,Git,Libgit2,我正在使用windows 7 libgit2版本0.23.0。我正在使用私有存储库使用libgit2获取克隆。我已经从Stackoverflow、github问题/修复中阅读了大量的问题和答案,这些问题/修复可用于libgit2库 我可以通过使用git\u cred\u userpass\u plaintext\u新方法设置凭证来克隆私有存储库。此方法成功地将所有更新的文件从远程拉到本地磁盘。但在这之后,如果在远程存储库上做了任何更改,那么我就有问题将更改从远程拉到本地磁盘,我使用它执行git_

我正在使用windows 7 libgit2版本0.23.0。我正在使用私有存储库使用libgit2获取克隆。我已经从Stackoverflow、github问题/修复中阅读了大量的问题和答案,这些问题/修复可用于libgit2库

我可以通过使用git\u cred\u userpass\u plaintext\u新方法设置凭证来克隆私有存储库。此方法成功地将所有更新的文件从远程拉到本地磁盘。但在这之后,如果在远程存储库上做了任何更改,那么我就有问题将更改从远程拉到本地磁盘,我使用它执行git_remote_fetch,不会出现任何错误,它会创建

新的FETCH_头文件,该文件在/.git文件夹下包含新的oid,并且 在/.git/objects/pack文件夹下下载新的pack文件.idx和.pack。 在所有这些之后,文件的更改或更新的文件没有在我的本地repo复制,我不确定我是否跳过了任何步骤,我也尝试了提交并将文件从本地repo推送到远程repo,但我无法得到任何好的例子。这些示例和API让我有点困惑

请建议我是否有任何机构可以帮助我进行简单的:

从原点或主分支拉出 提交本地存储库 推送到原点或主分支 使用LIBGIT2


提前感谢。

获取不是拉取。这是两件不同的事情。Fetch不会以任何方式更改您的工作目录。Fetch只是从远程存储库下载缺少的提交。pull==Fetch+merge对文档中令人困惑的内容进行反馈,最欢迎使用示例@爱德华·汤姆森:例如[git_merge]。你能告诉我一些样品或例子吗?这对我真的很有帮助。尝试调用int-git\u mergegit\u repo、const-git\u annotated\u commit**他们的头、大小和头、const-git\u合并选项*合并选项、const-git\u签出选项*签出选项;但第二个参数git_annotated_commit应该是常量。我正在从方法git\u annotated\u commit\u查找方法中获取git\u annotated\u commit**。谁能告诉我如何将git\u注释的\u commit**转换为const?