我需要获取一个提交列表,而不需要Git完成自动合并提交。 如何使用libgit2sharp包完成?
答案 0 :(得分:6)
合并提交是具有多个父级的提交。
为了使用Git执行此操作,可以发出以下命令,该命令将列出HEAD可以访问的所有不是合并提交的提交。
git log --no-merges HEAD
--no-merges
documented 的位置为"请勿打印包含多个父级的提交。这与--max-parents = 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();
}
}