DOCS / GIT
Power tools
Beyond the daily commit-and-push loop, Birch ships the recovery and archaeology tools you occasionally can’t live without: reflog for “I lost a commit”, bisect for “which commit broke it”, blame and per-file history for “who wrote this and why”, plus tags and LFS management.
The caution above applies to Reflog, Bisect, Tags, Git LFS, and Compare branches. Two tools remain fully reachable: Blame and File history, both opened from the file context menu described below.
Blame — reachable
Section titled “Blame — reachable”In the Changes tab, right-click a file and choose View blame…. The blame window shows every line of the file with its line number, the short SHA of the commit that last touched it, the author, the date, and the line’s content; hovering a line reveals the commit summary. Use it to answer “who wrote this, and in which commit?” without leaving Birch.
File history — reachable
Section titled “File history — reachable”From the same context menu, Show file history… opens a window listing every commit that touched the file — following renames — with short SHA, date, subject, and author. Selecting a commit shows that commit’s diff for this one file. The same command is also available on the file rows of a selected commit in the History tab.
Reflog
Section titled “Reflog”The reflog dialog is the “undo my mistake” tool: it lists a ref’s reflog entries
(selector like HEAD@{2}, short SHA, subject, date) so you can find a commit
that no branch points to anymore. Controls:
- Ref filter — which ref’s log to read; defaults to
HEAD. - Entry limit — from 1 up to 5000, with a Reload button.
- Create branch from selected entry — type a new branch name and click Create branch to anchor the lost commit on a real branch again.
Bisect
Section titled “Bisect”The bisect dialog drives git bisect’s binary search over history to find the
commit that introduced a bug: Start, then test each commit git checks out
and press Mark good or Mark bad (or Skip for an untestable commit).
The dialog shows the current commit’s SHA and subject and how many revisions
remain to test; when the search converges it displays the first bad commit.
Reset ends the bisect and returns to where you started.
The tags dialog lists existing tags with their kind (annotated or lightweight), target SHA, subject, and date. From it you can:
- Create a tag — a tag name (required), an optional message (a non-empty
message makes it an annotated tag), and an optional target SHA (default:
HEAD). - Delete the selected tag.
- Push to remote — push the selected tag to the remote you name.
- Push all tags — push every tag (
git push --tags).
Git LFS
Section titled “Git LFS”The LFS dialog manages the repository’s Git LFS tracked patterns. If git-lfs
is not installed, the dialog says so and asks you to install it first. When it
is available, you see the list of tracked patterns and can add a new one (for
example *.psd) with the Track button.
Compare branches
Section titled “Compare branches”The compare-branches dialog takes a Base and a Head branch and shows their merge base SHA, the commits only on head, and the files changed between the two — a quick pre-merge sanity check.