juv*_*han 4 libgit2 libgit2sharp
我需要在没有Git完成的自动合并提交的情况下获取提交列表.如何使用libgit2sharp包完成?
合并提交是具有多个父级的提交.
为了使用Git执行此操作,可以发出以下命令,该命令将列出HEAD可以访问的所有提交,这些提交不是合并提交.
git log --no-merges HEAD
Run Code Online (Sandbox Code Playgroud)
凡--no-merges被记录为"不打印与多个父提交.这是完全一样的--max父母= 1"..
使用以下代码可以使用LibGit2Sharp执行相同的操作:
using (var repo = new Repository(path))
{
var allCommitsReachableByHead = repo.Commits;
const string RFC2822Format = "ddd dd MMM HH:mm:ss yyyy K";
foreach (var c in allCommitsReachableByHead)
{
if (c.Parents.Count() > 1)
{
continue;
}
Console.WriteLine("Author: {0} <{1}>", c.Author.Name, c.Author.Email);
Console.WriteLine("Date: {0}", c.Author.When.ToString(RFC2822Format, CultureInfo.InvariantCulture));
Console.WriteLine();
Console.WriteLine(c.Message);
Console.WriteLine();
}
}
Run Code Online (Sandbox Code Playgroud)