首先,您必须获取远程跟踪分支的状态。没有任何其他方法可以检查您的分支是否已在远程更新。为此,许多工具会定期自动获取(例如每 10 分钟一次)。
然后将您的本地分支与其上游分支进行比较。使用 libgit2 实现此目的的一种方法是使用该revwalk功能。如果您git_revwalk_push_ref上游和git_revwalk_hide_ref本地分支然后走过该范围,您可以计算本地分支后面有多少提交。执行相反的操作以获得提前的提交数量。
例子:
git_revwalk *walker;
git_revwalk_new(&walker, repo);
git_revwalk_push_ref(walker, "refs/remotes/origin/master");
git_revwalk_hide_ref(walker, "refs/heads/master");
git_oid id;
int count = 0;
while (!git_revwalk_next(&id, walker))
++count;
// 'count' is the difference between remote and local
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
671 次 |
| 最近记录: |