Find any commit: search, history and blame
Answer the three questions that send people to git log: when did this line change, who changed it, and where is the commit that mentioned the ticket? You will filter History by message, author, path and date, follow a single file back through time, and read a blame for any commit, not just the latest.
Read the graph
Press ⌘2. Each row is a commit, with Description, Author, Date and Commit (the short hash) as columns and the branch lanes drawn on the left. The top row, "Uncommitted changes", is your working tree; click it to jump to the Changes view. Branch and tag labels sit on the commits they point at.
Move with ↑ and ↓, or j and k. PageUp and PageDown move a screen at a time; Home and End go to the newest commit and the oldest one loaded. Click a commit and the inspector (⌘⌥I) shows its message, author and the files it changed; click a file for its diff.
Find a commit
- Press ⌘F, or Edit › Find in History…. The find bar opens above the graph.
- Type in the first field, "Message or commit hash". Matching commits stay bright and the rest dim; a count on the right reads "14 matches".
- Narrow it with the Author and Path fields, and the From and To dates. All the fields combine, so "Author: Priya, Path: src/search" finds her commits that touched that folder.
- Press ⏎ to move to the next match and ⇧⏎ for the previous one. The graph scrolls with you and the inspector follows.
- Tick "Only matches" to hide the non-matching rows and read the matches as a list. If that leaves nothing, the view says "No commits match. Loosen a filter, or untick Only matches to see the whole history."
- Press Esc to close the bar. The graph returns to normal.
If you already know the hash, a branch or a tag, skip the bar: press ⌘K, type it as a single word and choose "Jump to … in History".
Follow one file through time
- Select a commit that touched the file, and in the inspector click the file.
- Click History. A sheet opens titled "History of src/search.ts", listing every commit that changed that file, newest first.
- Click a commit in the sheet to see what that commit did to this file.
- Switch the segmented control to Blame to see the same file line by line.
The same two buttons sit above the diff in the Changes view, so you can check a file's past before you change its present. In the palette, typing a path offers "Blame src/search.ts" and "History of src/search.ts" directly.
Blame as of any commit
Blame in Mergepond is pinned to a commit. From a commit's inspector, Blame shows "Who last changed each line, as of this commit", which means you can ask the question about the code as it was six months ago, not just today. Each line shows the commit that last touched it; click one to jump to that commit in History, then open Blame again from there to step back further.
Get more from it
- Right-click any commit for Cherry-pick, Revert, "Interactive rebase from here…", "Create tag here…" and "Copy commit hash", so finding a commit and acting on it is one motion.
- Search by date when you remember the week but not the words: set From and To and leave the message field empty.
- Path filters match prefixes, so
src/finds everything under it. - Branch names in the sidebar are links into the graph: click one to show its tip in History, double-click to switch to it.