我能够使用LibGit2Sharp成功获取,拉取,推送等,但我希望能够在执行获取后列出已更改,添加等的文件。我使用https://github.com/libgit2/libgit2sharp/wiki/git-fetch并且没有发生任何错误或异常,并且logMessage是一个空字符串。
我希望能够显示Visual Studio在执行提取时所做的更改列表。
如何使用LibGit2Sharp来完成此任务?
编辑: 我已经阅读了LibGit2Sharp Wiki和LibGit2Sharp Hitchhiker的Git指南。虽然我已经尝试了一些可用的命令来查看它们提供的结果,但我不确定它的等效git命令是什么。知道并理解哪个命令可以提供这些信息会很有帮助,如果您熟悉Git而不熟悉LibGit2Sharp,我们将不胜感激。
答案 0 :(得分:2)
完成提取后,您可以使用
列出给定分支的提取提交git log ..@{u}
用@{u}
指定要合并的分支(上游远程跟踪分支,通常为origin/yourbranch
)
在LibGitSharp中,这就是LibGit2Sharp/BranchUpdater.cs#UpstreamBranch引用(上游分支)
有了这个,您应该能够列出当前分支HEAD和“UpstreamBranch
”之间的提交,有点像issue 1161,但是这个问题列出了被推送的内容:让我们反转这里的日志参数。
var trackingBranch = repo.Head.TrackedBranch;
var log = repo.Commits.QueryBy(new CommitFilter
{ IncludeReachableFrom = trackingBranch.Tip.Id, ExcludeReachableFrom = repo.Head.Tip.Id });
var count = log.Count();//Counts the number of log entries
//iterate the commits that represent the difference between your last
//push to the remote branch and latest commits
foreach (var commit in log)
{
Console.WriteLine(commit.Message);
}