我尝试循环遍历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 中的提交,也无法访问悬空的提交(还没有?)。然后,我想没有奖励积分:-)