SmartGit's Log displays the working tree state and the repository's history as a list of commits, sorted by increasing age, and with a graph on the left side to show the parent-child relationships between the commits. What is shown on the Log depends on what was selected when the Log command was invoked:

A root Log can be invoked from other places in SmartGit as well:

Graph filter

Using the Filter field above theĀ Commits graph, you can restrict the displayed commits to those matching a certain filter criterion. On change of the Filter field, SmartGit will restart the search from the select Branches and report matching commits bit by bit. The search will be performed directly in the repository, so eventually SmartGit will find all matching commits in the entire repository.

Using the Filter field drop-down menu, you can specify filter criterions.

Details view

The Details view shows details on the selected commit:

Git does not remember the (current) branch as part of a commit. However, when creating merge commits, Git always uses the currently checked out (branch that points to a) commit as first parent and the merged one as second parent. That way it's possible to find out which commits belong to the same branch (first parent) and which were merged (second parent).

Log Commands

In the Log Frame, many commands which are known from the Project Window are available as well:

Compare Commits

You can compare two commits in the Graph by selecting both commits (Ctrl-click). The difference from the newer commit compared to the older commit will be displayed in the Files view. By selecting a file you can see detailed change in the Changes view. In a similar way, you can compare the Index against a specific commit.

When comparing branches you can also invoke Reveal Commit from the context menu of the first branch in the Branches view, then invoke Compare with Selected Commit on the second branch.

Recyclable Commits

In the Branches view, you can toggle Recyclable Commits to get back obsolete heads which are not reachable anymore from any ref. Technically, SmartGit will include all commits which are found in the reflogs (.git/logs-files).