使用 LibGit2Sharp 遍历 Git 存储库中的每个提交
本文关键字:提交 LibGit2Sharp 遍历 Git 存储 使用 | 更新日期: 2023-09-27 18:33:23
我尝试遍历new LibGit2Sharp.Repository(path).Commits
,但似乎它只通过主服务器中的提交(或者我猜 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 中的提交或悬空的提交(还?然后,没有奖励积分,我猜:-)