用libgit2实现'git pull'?

Nat*_*man 7 c git libgit2

我有一个相对较短的Gist,它应该libgit2用来模拟git pull命令的功能.不幸的是,它并没有完全奏效.

总之,代码片段:

根据git_remote_stats(),物体确实被取出.但工作目录不会更改以反映最新提交.我尝试添加:

git_checkout_head(repo, NULL);
Run Code Online (Sandbox Code Playgroud)

......但这没有任何区别.

输入:

git checkout master

...在终端中产生以下输出:

Already on 'master'
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.

我如何快进?

lin*_*ize 3

你应该跑git pull origin master

或者

git fetch origin+git merge origin/master

那么意味着您需要等效的 libgit2 合并功能。

libgit2 v0.20 中提供了合并功能