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