Also move the existing log functions into a new GitLog component.
To help with reviewing this PR is broken down into two commits:
The first one moves the existing log functions into a GitLog component. This only moves the existing code around, there are no functional changes to the contents.
The second commit adds the new grep functionality and associated tests.
Also move the existing log functions into a new GitLog component.
To help with reviewing this PR is broken down into two commits: