2
힘내 자에 의해 수행 된 자동 병합 커밋없이 커밋 목록을 가져와야합니다. libgit2sharp 패키지를 사용하면 어떻게 될까요?libgit2sharp를 사용하여 병합 커밋을 무시하는 방법?
힘내 자에 의해 수행 된 자동 병합 커밋없이 커밋 목록을 가져와야합니다. libgit2sharp 패키지를 사용하면 어떻게 될까요?libgit2sharp를 사용하여 병합 커밋을 무시하는 방법?
병합 커밋은 둘 이상의 부모가있는 커밋입니다.
Git에서이를 수행하기 위해, 예를 들어 병합 커밋이 아닌 HEAD가 도달 할 수있는 모든 커밋을 나열하는 다음 명령을 실행합니다. --no-merges
가 로 documented입니다
git log --no-merges HEAD
은 "하지 마 인쇄가 둘 이상의 부모 커밋합니다. 이것이 바로 --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();
}
}
감사합니다 아주 많이! 내 질문에 대한 완벽한 대답. :) – juvchan