C# libgit2sharp获取自上次推送以来的所有提交

C# libgit2sharp获取自上次推送以来的所有提交,c#,git,libgit2,libgit2sharp,C#,Git,Libgit2,Libgit2sharp,我想查看自上次用户从其计算机中推送以来的所有提交 using (var repo = new Repository(repositoryDirectory)) { var c = repo.Lookup<Commit>(shaHashOfCommit); // Let's only consider the refs that lead to this commit... var refs = repo.Refs.ReachableFrom(new

我想查看自上次用户从其计算机中推送以来的所有提交

    using (var repo = new Repository(repositoryDirectory))
{
    var c = repo.Lookup<Commit>(shaHashOfCommit);

    // Let's only consider the refs that lead to this commit...
    var refs = repo.Refs.ReachableFrom(new []{c});

   //...and create a filter that will retrieve all the commits...
    var cf = new CommitFilter
    {
        Since = refs,       // ...reachable from all those refs...
        Until = c           // ...until this commit is met
    };

    var cs = repo.Commits.QueryBy(cf);

    foreach (var co in cs)
    {
        Console.WriteLine("{0}: {1}", co.Id.ToString(7), co.MessageShort);
    }       
}
使用(var repo=new Repository(repositoryDirectory))
{
var c=回购查寻(shaHashOfCommit);
我们只考虑导致这一承诺的参考文献。
var refs=repo.refs.reachable from(new[]{c});
//…并创建一个将检索所有提交的筛选器。。。
var cf=新提交过滤器
{
因为=引用,//…可以从所有这些引用中访问。。。
直到=c/…直到满足此提交
};
var cs=repo.Commits.QueryBy(cf);
foreach(cs中的var co)
{
WriteLine(“{0}:{1}”,co.Id.ToString(7),co.MessageShort);
}       
}

我从另一篇文章中获得了此代码,但我不确定如何修改它以获得自上次推送之日起的提交。

您希望从
c
可以访问的提交,但不包括从远程提交可以访问的提交

如果您谈论的是
master
,在典型的设置中,跟踪分支将是
remotes/origin/master
<代码>参考/远程/源/主将在您按下远程
分支时更新

因此,您的
CommitFilter
应该如下所示:

new CommitFilter { Since = repo.Refs["refs/remotes/origin/master"], Until = c }
这相当于git log refs/remotes/origin/master..c