使用 libgit2 获取未推送的提交

Get unpushed commits with libgit2

有没有办法用 libgit 2 显示所有可用分支的所有未推送提交。我的想法是使用 git_revparse(&spec, repo, "origin/master..master");但这给了我一个 git_revspec 并且我不知道如何使用它来遍历所有提交。另一个问题是此方法仅适用于特定分支。

使用git_branch_iterator函数获取所有本地分支,git_branch_upstream获取对应的上游分支。然后使用 git_revwalk 函数遍历它们之间所有不同的提交。使用 git_revwalk_push_ref 推送上游并使用 git_revwalk_hide_ref.

隐藏本地分支