我尝试循环遍历new LibGit2Sharp.Repository(path).Commits,但它似乎只通过 master 中的提交(或者我猜 HEAD 指向哪里?)。
我将如何遍历存储库中的每个提交,无论它在哪个分支中,并按照提交发生时间(日期)的顺序遍历它们?
我这样做的目的是git log为了按日期顺序列出不考虑分支的提交。
如果我还可以循环遍历未引用的提交(即,如果您git reset远离某些提交并且这些提交不再被引用并且即将获得 gc'd),则可以加分。
想法?
我尝试循环遍历new LibGit2Sharp.Repository(path).Commits,但它似乎只通过 master 中的提交(或者我猜 HEAD 指向哪里?)。
我将如何遍历存储库中的每个提交,无论它在哪个分支中,并按照提交发生时间(日期)的顺序遍历它们?
我这样做的目的是git log为了按日期顺序列出不考虑分支的提交。
如果我还可以循环遍历未引用的提交(即,如果您git reset远离某些提交并且这些提交不再被引用并且即将获得 gc'd),则可以加分。
想法?
支持git log --all应该可以通过以下语法实现
using (var repo = new Repository(yourRepoPath))
{
var commits = repo.Commits.QueryBy(new Filter { Since = repo.Refs });
}
Filter还公开了一个属性来控制结果的SortBy顺序。默认排序 ( GitSortOptions.Time) 将首先输出最近的提交。
如果我还可以遍历未引用的提交,则可以加分
无法访问 reflog 中的提交,也无法访问悬空的提交(还没有?)。然后,我想没有奖励积分:-)