Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upgit log
git-log
Show HEAD commit logs
Limiting the number of commits to show
Git
$ git log -15
LibGit2Sharp
using (var repo = new Repository("path/to/your/repo"))
{
var RFC2822Format = "ddd dd MMM HH:mm:ss yyyy K";
foreach (Commit c in repo.Commits.Take(15))
{
Console.WriteLine(string.Format("commit {0}", c.Id));
if (c.Parents.Count() > 1)
{
Console.WriteLine("Merge: {0}",
string.Join(" ", c.Parents.Select(p => p.Id.Sha.Substring(0, 7)).ToArray()));
}
Console.WriteLine(string.Format("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();
}
}Changing the order of the commits
Git
$ git log --topo-order --reverse
LibGit2Sharp
using (var repo = new Repository("path/to/your/repo"))
{
var filter = new CommitFilter { SortBy = CommitSortStrategies.Topological | CommitSortStrategies.Reverse };
foreach (Commit c in repo.Commits.QueryBy(filter))
{
Console.WriteLine(c.Id); // Of course the output can be prettified ;-)
}
}Show only commits between two named commits
Git
$ git log master..development
LibGit2Sharp
using (var repo = new Repository("path/to/your/repo"))
{
var filter = new CommitFilter {
ExcludeReachableFrom = repo.Branches["master"], // formerly "Since"
IncludeReachableFrom = repo.Branches["development"], // formerly "Until"
};
foreach (Commit c in repo.Commits.QueryBy(filter))
{
Console.WriteLine(c.Id); // Of course the output can be prettified ;-)
}
}Show only commits between two tags
Git
$ git log tag1 tag2
LibGit2Sharp
using (var repo = new Repository(@"path/to/your/repo"))
{
Tag tagTo = repo.Tags["tag2"];
Tag tagFrom = repo.Tags["tag1"];
var filter = new CommitFilter()
{
IncludeReachableFrom = tagTo.Target.Sha,
ExcludeReachableFrom = tagFrom.Target.Sha
};
var commits = repo.Commits.QueryBy(filter).ToList();
}Show tree changes between two commits
Git
$ git log tag1 tag2 --stat
LibGit2Sharp
using (var repo = new Repository(@"path/to/your/repo"))
{
Tag tagTo = repo.Tags["tag2"];
Tag tagFrom = repo.Tags["tag1"];
var commitFrom = repo.Lookup<LibGit2Sharp.Commit>(tagFrom.Target.Sha);
var commitTo = repo.Lookup<LibGit2Sharp.Commit>(tagTo.Target.Sha);
TreeChanges treeChanges = repo.Diff.Compare<TreeChanges>(commitFrom.Tree, commitTo.Tree);
}
